如何在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

上一篇: How to convert a Map to List in Java?

下一篇: How can I initialise a static Map?