终止操作常用方法:
查找与匹配
allMatch --- 检查是否匹配所有元素
anyMatch --- 检查是否至少匹配一个元素
noneMatch --- 检查是否没有匹配所有元素
findFirst --- 返回第一个元素
findAny --- 返回当前流中的任意元素
count --- 返回流中元素的总个数
max --- 返回流中最大值
min --- 返回流中最小值
peek: 返回由该流的元素组成的流,并在所提供的流中执行所提供的每个元素上的动作
规约: reduce(T identity, BinaryOperator) --- 可以将流中元素反复结合起来,得到一个值
收集: collect --- 将流转换为其他形式. 接收一个Collection接口的实现, 用于给Stream中元素做汇总的方法
分组: emps.stream().collect(Collectors.groupingBy(Employee::getStatus))
分区: emps.stream().collect(Collectors.partitioningBy
基础员工类:点我
测试用例:
import com.sarj.streetlamp.optional.Employee;
import org.junit.Test;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 终止操作常用方法:
查找与匹配
allMatch --- 检查是否匹配所有元素
anyMatch --- 检查是否至少匹配一个元素
noneMatch --- 检查是否没有匹配所有元素
findFirst --- 返回第一个元素
findAny --- 返回当前流中的任意元素
count --- 返回流中元素的总个数
max --- 返回流中最大值
min --- 返回流中最小值
peek: 返回由该流的元素组成的流,并在所提供的流中执行所提供的每个元素上的动作
规约: reduce(T identity, BinaryOperator) --- 可以将流中元素反复结合起来,得到一个值
收集: collect --- 将流转换为其他形式. 接收一个Collection接口的实现, 用于给Stream中元素做汇总的方法
分组: emps.stream().collect(Collectors.groupingBy(Employee::getStatus))
分区: emps.stream().collect(Collectors.partitioningBy
*/
public class StreamTest2 {
List<Employee> emps = Arrays.asList(
new Employee("张三", 18, 9999.99, Employee.Status.FREE),
new Employee("李四", 58, 5555.55, Employee.Status.BUSY),
new Employee("王五", 26, 3333.33, Employee.Status.VOCATION),
new Employee("赵六", 36, 6666.66, Employee.Status.FREE),
new