如何在Java中将Map转换为List?

2022-08-31 04:05:34

如何将 a 转换为 ?我是否应该遍历所有映射值并将其插入到列表中?Map<key,value>List<value>


答案 1
List<Value> list = new ArrayList<Value>(map.values());

若:

Map<Key,Value> map;

答案 2

这里的问题是 Map 有两个值(一个键和一个值),而 List 只有一个值(一个元素)。

因此,最好的办法是获取 a 键或值。(除非我们制作一个包装器来保持键/值对)。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 方法返回的集合中创建新的值,但可以获取作为 的值:ListArrayList

List<String> list = new ArrayList<String>(m.values());

获取密钥的结果:List

Apple
Another
Hello

获取值的结果:List

3.14
Element
World