java - collect方法的第三个参数(combiner)怎么用?
问题描述
我正在学习 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
?
解决方案
推荐阅读
- spring - 使用 azure 服务总线的 spring 批处理集成配置
- javascript - 将 div 放在 div 之上,而不是在第三个 div 上工作
- html - Bootstrap - 我如何让所有卡片的高度相同?
- go - 尝试使用供应商目录部署 Google Cloud 功能时出错
- reactjs - Reactjs SPA - 按 IOS Safari 后退按钮更新 url 但不更新组件视图
- postgresql - 安装时更改端口号导致连接PostgreSQL服务器失败
- c# - 如何更改嵌套列表的子项中的变量值
- android - Firebase 是否对使用磁盘持久性在设备上下载的数据库进行的查询收费?
- gatsby - fsevents.watch 错误运行 Gatsby hello-world 示例
- wpf - 将名称添加到特定样式控件 wpf