如何在Java中将Map转换为List?将a转换Map<key,value>为a 的最佳方法是List<value>什么?只是迭代所有值并将它们插入列表中或者我忽略了什么?
3 回答

暮色呼如
TA贡献1853条经验 获得超9个赞
使用Java 8 Streams API。
List<Value> values = map.values().stream().collect(Collectors.toList());

开心每一天1111
TA贡献1836条经验 获得超13个赞
List<Value> list = new ArrayList<Value>(map.values());
假设:
Map<Key,Value> map;

饮歌长啸
TA贡献1951条经验 获得超3个赞
这里的问题是它Map有两个值(一个键和一个值),而一个List只有一个值(一个元素)。
因此,可以做的最好的事情是获得一个List键或值。(除非我们使用包装器来保持键/值对)。
说我们有一个Map:
Map<String, String> m = new HashMap<String, String>();
m.put("Hello", "World");
m.put("Apple", "3.14");
m.put("Another", "Element");
作为a的键List可以通过ArrayList从方法Set返回的新建来获得Map.keySet:
List<String> list = new ArrayList<String>(m.keySet());
而作为该值List能够获得创建新的ArrayList从Collection由返回的Map.values方法:
List<String> list = new ArrayList<String>(m.values());
获取List密钥的结果:
苹果
另一个
你好
获取List值的结果:
3.14
元件
世界
添加回答
举报
0/150
提交
取消