如何在Java中将地图转换为列表?
将Map<key,value>
转换为List<value>
的最佳方法是什么? 只需遍历所有值并将它们插入到列表中,或者我忽略了某些内容?
List<Value> list = new ArrayList<Value>(map.values());
假设:
Map<Key,Value> map;
这里的问题是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");
作为List
的键可以通过从Map.keySet
方法返回的Set
创建一个新的ArrayList
来获得:
List<String> list = new ArrayList<String>(m.keySet());
虽然可以通过由Map.values
方法返回的Collection
创建一个新的ArrayList
来获取List
的值:
List<String> list = new ArrayList<String>(m.values());
获取密钥List
的结果:
Apple Another Hello
获取值List
的结果:
3.14 Element World
使用Java 8 Streams API。
List<Value> values = map.values().stream().collect(Collectors.toList());
链接地址: http://www.djcxy.com/p/17961.html