【发布时间】:2018-11-26 08:27:39
【问题描述】:
我正在学习 lambda 表达式。 从人员列表中,我想要另一个包含 20 岁以上人员的列表。
final List<Person> people = Arrays.asList(
new Person("John", 10),
new Person("Greg", 30),
new Person("Sara", 20),
new Person("Jane", 15));
List<Person> olderThan20 =
people.stream()
.filter(person -> person.getAge() > 20)
.collect(ArrayList::new,
ArrayList::add,
ArrayList::addAll);
我的印象是只有前两个参数就足够了ArrayList::new和ArrayList::add。
在我的示例中,第三个参数ArrayList::addAll 是如何以及何时使用的?
【问题讨论】:
-
@GhostCat 我试图删除我的问题,因为它是重复的。你的解决方案对我来说没问题。我知道这是创建另一个列表的更好方法,我只是做了这个例子来学习建议。
-
见meta.stackexchange.com/questions/10841/… ...没有需要删除重复的问题。老实说。甚至关于封闭式重复的答案有时也会对未来的读者有所帮助;-) ...考虑到整天在这里出现多少低质量的 Q/S,为什么还要为这里的好内容而烦恼 ;-) x2跨度>