我有一个Map<Integer, List>
带有键值的地图。我需要将其转换为 List 并将其传递给调用函数。获得列表后,我需要将其转换回Map<Integer, List>
我将地图转换为列表的原因是因为我需要为此方法创建网络服务。由于我无法将地图公开给网络服务,我需要将其转换为列表。
如何实现这一目标..?
我有一个Map<Integer, List>
带有键值的地图。我需要将其转换为 List 并将其传递给调用函数。获得列表后,我需要将其转换回Map<Integer, List>
我将地图转换为列表的原因是因为我需要为此方法创建网络服务。由于我无法将地图公开给网络服务,我需要将其转换为列表。
如何实现这一目标..?
地图有两个称为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());
您可以创建一个具有两个属性(Integer、List)的类,并通过一个对象键创建一个 List。
此外,您可以使用:
new ArrayList(Map.entrySet());
并将结果集转换为列表。
要获取值(字符串):
List<List<String>> listVals = new ArrayList<List<String>>(map.values());
要获取密钥:
List<Integer> listKeys = new ArrayList<Integer>(map.keySet());
根据我读到的内容,您正在尝试通过列表传递地图(作为您的服务限制)。
如果您找不到更好的解决方案,您始终可以使用两个列表。一个用于键,一个用于值。
(但是您有可能使用这种方法破坏地图的一致性)。
地图包含键值对,但列表不包含键值对。所以你可以创建一个 bean 类来设置键和值,然后创建包含 bean 类对象的列表。