在Java 8中是否可以编写如下代码:
List<A> aList = getAList();
List<B> bList = new ArrayList<>();
for(A a : aList) {
bList.add(a.getB());
}
我认为应该混合以下各项:
aList.forEach((b -> a.getB());
要么
aList.forEach(bList::add);
但是我无法将这两者混合以获得所需的输出。
最佳答案
这里有几种方法
aList.stream().map(A::getB).forEach(bList::add);
// or
aList.forEach(a -> bList.add(a.getB()));
或者甚至可以即时创建
bList()
:List<B> bList = aList.stream().map(A::getB).collect(Collectors.toList());
关于java - Java 8 foreach将子对象添加到新列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39326658/