1

我有一个Map<Integer, List>带有键值的地图。我需要将其转换为 List 并将其传递给调用函数。获得列表后,我需要将其转换回Map<Integer, List>

我将地图转换为列表的原因是因为我需要为此方法创建网络服务。由于我无法将地图公开给网络服务,我需要将其转换为列表。

如何实现这一目标..?

4

5 回答 5

2

地图有两个称为keySet()和的函数values()。它们分别返回映射的键和值。键以 a 形式返回,Set值以 a形式返回Collection

您可以从其中任何一个创建列表。

这是一个例子:

Map<Integer, List> map = // map creation;
List<Integer> keyList = new ArrayList<Integer>(map.keySet());
List<List> valueList = new ArrayList<List>(map.values());
于 2012-06-01T12:46:53.950 回答
0

您可以创建一个具有两个属性(Integer、List)的类,并通过一个对象键创建一个 List。

此外,您可以使用:

new ArrayList(Map.entrySet());

并将结果集转换为列表。

于 2012-06-01T12:46:57.937 回答
0

要获取值(字符串):

List<List<String>> listVals = new ArrayList<List<String>>(map.values());

要获取密钥:

List<Integer> listKeys = new ArrayList<Integer>(map.keySet());
于 2012-06-01T12:49:16.320 回答
0

根据我读到的内容,您正在尝试通过列表传递地图(作为您的服务限制)。

如果您找不到更好的解决方案,您始终可以使用两个列表。一个用于键,一个用于值。

(但是您有可能使用这种方法破坏地图的一致性)。

于 2012-06-01T12:50:35.773 回答
0

地图包含键值对,但列表不包含键值对。所以你可以创建一个 bean 类来设置键和值,然后创建包含 bean 类对象的列表。

于 2012-06-01T12:51:46.337 回答