函数式编程
注重函数 - 关注对数据进行了什么操作
流
中间操作
去重
authors.stream() .distinct() ;
查询指定匹配
.filter(new Predicate<Author>() { @Override public boolean test(Author author) { author.getAge() == 18; } }) Lambda优化=> .filter(author -> author.getAge() == 18)
转换流当中的类型
.map
排序
不能有重复 - .sorted()
降序
空参 - 实现compareble接口
有参-
限制流的最大长度
limit -
跳过前n个元素, 返回剩下的元素
.skip
取出一个新的流 - 新类型
map只能把一个对象转换成另一个对象来作为流中的元素。而flatMap可以把一个对象转换成多个对象作为流中的元素。
.flatMap
终结操作
遍历
forEach(new Consumer<Author>() { @Override public void accept(Author author) { System.out.println(author.getName()); } }); Lambda优化=> .forEach(author -> System.out.println(author.getName()))
获取当前流中的元素的个数
.cout
求流中的最大最小值
.max
.min
把当前流转换成一个集合
.collect(Collectors.toList)
.collect(Collectors.toSet)
.collect(Collectors.toMap(a->a.getKey, a->a.getValue))
查找与匹配
.anyMatch(匿名内部类- 判断条件)
.allMatch()
.findAny
.findFirst
归并
reduce
内部操作流程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY