JAVA8之collect总结
来源:互联网 发布:ih5 知乎 编辑:程序博客网 时间:2024/04/30 14:44
一,collect是一个终端操作,它接收的参数是将流中的元素累积到汇总结果的各种方式(称为收集器)
二,预定义收集器包括将流元素归约和汇总到一个值.如下
工厂方法
返回类型
用于
toList
List<T>
把流中所有元素收集到List中
示例:List<Menu> menus=Menu.getMenus.stream().collect(Collectors.toList())
toSet
Set<T>
把流中所有元素收集到Set中,删除重复项
示例:Set<Menu> menus=Menu.getMenus.stream().collect(Collectors.toSet())
toCollection
Collection<T>
把流中所有元素收集到给定的供应源创建的集合中
示例:ArrayList<Menu> menus=Menu.getMenus.stream().collect(Collectors.toCollection(ArrayList::new))
Counting
Long
计算流中元素个数
示例:Long count=Menu.getMenus.stream().collect(counting);
SummingInt
Integer
对流中元素的一个整数属性求和
示例:Integer count=Menu.getMenus.stream().collect(summingInt(Menu::getCalories))
averagingInt
Double
计算流中元素integer属性的平均值
示例:Double averaging=Menu.getMenus.stream().collect(averagingInt(Menu::getCalories))
Joining
String
连接流中每个元素的toString方法生成的字符串
示例:String name=Menu.getMenus.stream().map(Menu::getName).collect(joining(“, ”))
maxBy
Optional<T>
一个包裹了流中按照给定比较器选出的最大元素的optional
如果为空返回的是Optional.empty()
示例:Optional<Menu> fattest=Menu.getMenus.stream().collect(maxBy(Menu::getCalories))
minBy
Optional<T>
一个包裹了流中按照给定比较器选出的最大元素的optional
如果为空返回的是Optional.empty()
示例: Optional<Menu> lessest=Menu.getMenus.stream().collect(minBy(Menu::getCalories))
Reducing
归约操作产生的类型
从一个作为累加器的初始值开始,利用binaryOperator与流中的元素逐个结合,从而将流归约为单个值
示例:int count=Menu.getMenus.stream().collect(reducing(0,Menu::getCalories,Integer::sum));
collectingAndThen
转换函数返回的类型
包裹另一个转换器,对其结果应用转换函数
示例:Int count=Menu.getMenus.stream().collect(collectingAndThen(toList(),List::size))
groupingBy
Map<K,List<T>>
根据流中元素的某个值对流中的元素进行分组,并将属性值做为结果map的键
示例:Map<Type,List<Menu>> menuType=Menu.getMenus.stream().collect(groupingby(Menu::getType))
partitioningBy
Map<Boolean,List<T>>
根据流中每个元素应用谓语的结果来对项目进行分区
示例:Map<Boolean,List<Menu>> menuType=Menu.getMenus.stream().collect(partitioningBy(Menu::isType));
三,预定义收集器可以用groupby对流中元素进行分组或者用partitioningBy进行分区
四,收集器可以高效的复合起来,进行多级分组,多级分区和归约
五,可以自己实现collector接口进行定义自己的收集器
- JAVA8之collect总结
- JAVA8之collect总结
- JAVA8之collect总结
- JAVA8之collect总结(给自己)
- java8 汇聚操作之reduce、collect用法
- Java8-Stream collect
- java8 stream流 collect
- java8之lambda总结
- java8 collect操作函数列表
- JAVA8之Stream总结(给自己)
- Java8总结之函数式编程
- Guava库之collect
- Java8中聚合操作collect、reduce方法详解
- Java8学习记录(三)-强大的collect操作
- Java8中聚合操作collect、reduce方法参数作用
- collect!
- collect
- Collect
- Chrome内核解析 -- 背景篇:Chromium的多进程多线程构架
- 自配料的误区,最好搭配净霉宝哦
- Selenium学习笔记21_CSS Selector
- Android属性动画
- 网狐棋牌 麻将信息和麻将索引
- JAVA8之collect总结
- C++ 异常处理浅析
- android 贝塞尔曲线之波浪
- Thread的run()与start()的区别
- 解决Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
- 36. Valid Sudoku
- velocity的简单学习
- activiti 流程定义部署及查询
- Python for ML 笔记