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");
可以通过从Map.keySet
方法返回Set
创建一个新的ArrayList
List
的键:
List<String> list = new ArrayList<String>(m.keySet());
虽然可以通过Map.values
方法返回的Collection
List
的值来创建一个新的ArrayList
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());