java8学习总结

 ArrayList<String> strings = new ArrayList<> ();
        strings.add ("asd11");
        strings.add ("vsda3");
        strings.add ("bsdfa434");
 
        //1.fitter过滤  foreach是一个最终操作后续是不能使用其他的stream的
        strings.stream ().filter ((x)->x.startsWith ("a")).forEach (System.out::println);//asd11
        //2.sort排序  需要注意的是,排序只创建了一个排列好后的Stream,而不会影响原有的数据源,排序之后原数据strings是不会被修改的
        strings.stream ().sorted ().filter (x->x.equals ("asd11")).forEach (System.out::println);//asd11
        //3.map提供了很多可以处理数据的方法
        strings.stream ().map (String::toUpperCase).sorted ((a,b)->b.compareTo (a)).forEach (System.out::println);//VSDA3  BSDFA434  ASD11
        strings.stream ().map (String::length).limit (5).forEach (System.out::println);//5 5 8
 
        //4.match 提供了判断boolean类型的值
        boolean test01 = strings.stream ().anyMatch (x->x.startsWith ("v"));
        System.out.println (test01);//true
        boolean b = strings.stream ().allMatch (x -> x.startsWith ("bsdfa434"));
        System.out.println (b);//false
 
        //5.count 计算 最终操作
        long b1 = strings.stream ().filter (x -> x.startsWith ("b")).count ();
        System.out.println (b1);
    }
    @Data
    public  class Person{
        String name;
        String age;
    }

 

 

Lambda配合Optional<T>可以使Java对于null的处理变的异常优雅

 

这里假设我们有一个person object,以及一个person object的Optional wrapper:

 

 

Optional<T>如果不结合Lambda使用的话,并不能使原来繁琐的null check变的简单。

 

只有当Optional<T>结合Lambda一起使用的时候,才能发挥出其真正的威力!

 

我们现在就来对比一下下面四种常见的null处理中,Java 8的Lambda+Optional<T>和传统Java两者之间对于null的处理差异。

 

情况一 - 存在则开干

情况二 - 存在则返回,无则返回屁

情况三 - 存在则返回,无则由函数产生

情况四 - 夺命连环null检查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值