Stream的终止操作:收集

public class test {

    //收集
    @Test
    public void test1(){
        //collect(Collector c),Collector是收集人的意思,将流转化为其他形式
        //Collector接口中方法的实现决定了如何对流执行收集的操作(如收集到List,Set,Map)
        //Collectors实用类提供了很多静态方法,可以方便地创建常见收集器实例,返回Collector
        //Collectors中静态方法toList List<T>把流中元素收集到List

        //例子:查找工资大于6000的员工,结果返回为一个List或者Set

        //如果是放到List的当中
        List<Employee> employees = EmployeeData.getEmployees();
        List<Employee> employeeList = employees.stream().filter(e -> e.getSalary() > 6000).collect(Collectors.toList());

        //这里用的是集合中的forEach方法
        employeeList.forEach(System.out::println);//按照添加的顺序输出

        System.out.println();

        //如果是放到Set当中
        Set<Employee> employeeSet = employees.stream().filter(e -> e.getSalary() > 6000).collect(Collectors.toSet());
        employeeSet.forEach(System.out::println);//Collection实现了Iterable,而forEach方法是定义在Iterable当中的
        //Set本身无序,所以输出的顺序会变
    }
}

输出结果为:

Employee{id=1001, name='马化腾', age=34, salary=6000.38}
Employee{id=1002, name='马云', age=12, salary=9876.12}
Employee{id=1004, name='雷军', age=26, salary=7657.37}
Employee{id=1006, name='比尔盖茨', age=42, salary=9500.43}

Employee{id=1001, name='马化腾', age=34, salary=6000.38}
Employee{id=1002, name='马云', age=12, salary=9876.12}
Employee{id=1006, name='比尔盖茨', age=42, salary=9500.43}
Employee{id=1004, name='雷军', age=26, salary=7657.37}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值