public class Demo8 {
public static void main(String[] args) {
ArrayList<Employee> lst=new ArrayList<>();
lst.add(new Employee("小王",1000));
lst.add(new Employee("小张",11000));
lst.add(new Employee("小刘",11000));
lst.add(new Employee("小孙",14000));
lst.add(new Employee("小李",25000));
//终止操作 foreach
lst.stream().filter(e->e.getSalary()>10000)
.forEach(System.out::println);
//终止操作 min 、max count
System.out.println("-------------min----------------------");
Optional<Employee> min = lst.stream().min((e1, e2) -> Integer.compare(e1.getSalary(), e2.getSalary()));
System.out.println(min.get());
System.out.println("-------------max----------------------");
Optional<Employee> max = lst.stream().max((e1, e2) -> Integer.compare(e1.getSalary(), e2.getSalary()));
System.out.println(max.get());
System.out.println("------------count-----------------------");
long count = lst.stream().count();
System.out.println(count);
//终止操作 reduce 规约
//计算所有员工的工资和
System.out.println("---------reduce 规约--------------------------");
Optional<Integer> sum = lst.stream().map(e -> e.getSalary()).reduce((x, y) -> x + y);
System.out.println(sum.get());
//终止操作 collect收集
//获取所有的员工姓名,封装成一个list集合
System.out.println("--------------collect收集---------------------");
List<String> collect = lst.stream().map(e -> e.getName()).collect(Collectors.toList());
System.out.println(collect);
}
}
代码执行结果为
Employee{salary=11000, name='小张'}
Employee{salary=11000, name='小刘'}
Employee{salary=14000, name='小孙'}
Employee{salary=25000, name='小李'}
-------------min----------------------
Employee{salary=1000, name='小王'}
-------------max----------------------
Employee{salary=25000, name='小李'}
------------count-----------------------
5
---------reduce 规约--------------------------
62000
--------------collect收集---------------------
[小王, 小张, 小刘, 小孙, 小李]