JDK1.8的stream编程

public static void main(String[] args) throws ParseException {
        Person person1=new Person("lks",23,1);
        Person person2=new Person("wlm",24,0);
        Person person3=new Person("ljy",25,1);
        Person person4=new Person("zzq",23,1);
        ArrayList<Person> list=new ArrayList<>();
        list.add(person1);
        list.add(person2);
        list.add(person3);
        list.add(person4);
        /**
         * stream的过滤、筛选、去重操作
         */
        list.stream().filter((p)->p.getSex()==1).limit(2).distinct().forEach(p->{
            System.out.println(p.getName());
            System.out.println(p.getSex());
        });
        /**
         * stream的排序遍历
         * 通过map操作生成新的流
         */
        list.stream().sorted((e1,e2)->{
            if(e1.getAge().equals(e2.getAge())){
                return e1.getName().compareTo(e2.getName());
            }else{
                return e2.getAge().compareTo(e1.getAge());
            }
        }).forEach(System.out::println);

        list.stream().map(p->p.getName()).forEach(System.out::println);
        /**
         * stream的终止操作 max
         * 查找和匹配
         *      allMatch-检查是否匹配所有元素
         *      anyMatch-检查是否至少匹配一个元素
         *      noneMatch-检查是否没有匹配所有元素
         *      findFirst-返回第一个元素
         *      findAny-返回当前流中的任意元素
         *      count-返回流中元素的总个数
         *      max-返回流中最大值
         *      min-返回流中最小值
         */
        Optional<Person> max = list.stream().max((e1, e2) -> Integer.compare(e1.getAge(), e2.getAge()));
        System.out.println(max.get().getAge());

        /**
         * stream的功能强大的终止操作reduce(规约操作)
         */
        //1.计算总和
        Integer[] i=new Integer[]{1,2,3,4};
        List<Integer> integers = Arrays.asList(i);
        Integer reduce = integers.stream().reduce(0, (x, y) -> x + y);
        System.out.println(reduce);
        //2.计算年龄综合
        Optional<Integer> reduce1 = list.stream().map(p -> p.getAge()).reduce(Integer::sum);
        System.out.println(reduce1);
        /**
         * stream的功能强大的终止操作collect
         * Collect-将流转换为其他形式,接收一个Collection接口的实现,用于给Stream中元素做汇总的方法
         */
        List<Integer> collect = list.stream().map(p -> p.getAge()).collect(Collectors.toList());
        collect.stream().forEach(System.out::println);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值