如何将Map <integer,list =“”>转换为List </integer,>

时间:2012-06-01 12:43:44

标签: java data-structures collections

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

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

如何实现这个目标..?

5 个答案:

答案 0 :(得分:2)

地图有两个名为keySet()values()的功能。它们分别返回地图的键和值。密钥以Set的形式返回,值为Collection

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

以下是一个例子:

Map<Integer, List> map = // map creation;
List<Integer> keyList = new ArrayList<Integer>(map.keySet());
List<List> valueList = new ArrayList<List>(map.values());

答案 1 :(得分:0)

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

另外,您可以使用:

new ArrayList(Map.entrySet());

并将结果集转换为列表。

答案 2 :(得分:0)

获取值(字符串):

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

获取密钥:

List<Integer> listKeys = new ArrayList<Integer>(map.keySet());

答案 3 :(得分:0)

根据我的阅读,您试图通过列表传递地图(作为您的服务限制)。

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

(但是你冒着用这种方法破坏地图一致性的风险)。

答案 4 :(得分:0)

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