我有一个带有键值的地图Map<Integer, List>
。我需要将其转换为List并将其传递给调用函数。获得列表后,我需要将其转换回Map<Integer, List>
我将地图转换为列表的原因是因为我需要为此方法创建webservice。由于我无法将Map公开给webservice,我需要将其转换为list。
如何实现这个目标..?
答案 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类对象的列表。