关于java:将值映射到ArrayList

Map values to ArrayList

我有一个MapMyClass有2个字段,例如Object1 objObject2 objj

如何创建包含所有Object2值的ArrayList

我必须迭代Map然后将值添加到ArrayList还是以另一种方式存在?


如果您使用的是Java 8,则可以:

1
2
3
4
List<Object2> list = map.values()
                        .stream()
                        .map(v -> v.objj)
                        .collect(Collectors.toList());

如果您使用的是Java 7或更早版本,则@Marv的解决方案是最简单的。


您可以迭代Map的值:

1
2
3
4
5
ArrayList<Object2> list = new ArrayList<>();

for (MyClass e : map.values()) {
    list.add(e.objj);
}


结帐如下:

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

它有一个针对您的问题的衬管片段。

1
List<Object2> list = new ArrayList<Object2>(map.values());

假设:

1
Map<Integer, MyClass> map;