我有一个Map<Integer, MyClass>
,MyClass
有2个字段,例如Object1 obj
和Object2 objj
。
如何创建包含所有ArrayList<Object2>
值的Object2
?
我是否必须重复Map
,然后将值添加到ArrayList
或以另一种方式存在?
答案 0 :(得分:7)
如果您使用的是Java 8,则可以:
List<Object2> list = map.values()
.stream()
.map(v -> v.objj)
.collect(Collectors.toList());
如果您使用的是Java 7或更早版本,solution of @Marv是最简单的。
答案 1 :(得分:5)
您可以迭代Map
:
ArrayList<Object2> list = new ArrayList<>();
for (MyClass e : map.values()) {
list.add(e.objj);
}
答案 2 :(得分:4)
结帐以下:
How to convert a Map to List in Java?
它为您的问题提供了一个衬管摘录。
List<Object2> list = new ArrayList<Object2>(map.values());
假设:
Map<Integer, MyClass> map;