Java函数式编程原理以及应用(2)

List<Integer> list = new ArrayList<>();
        list.add(40);
        list.add(50);
        list.add(20);
        list.add(30);
        List<Integer> collect = list.stream().filter(x -> x >= 30)
                .map((x) -> x + 10).sorted((x, y) -> -x.compareTo(y))
                .collect(Collectors.toList());
        System.out.println(collect);
    }
}

这个一段很典型的Lambda + Stream的用法。

list.stream()获取list的stream的流

filter筛选出年龄大于30的人 (里面是一个Predicate接口,返回真假)

map做一个function映射

sort排序,里面是compartor

四. 总结

Lambda 表达式可以减少很多代码,能提高生产力。但也要理解其原理。比如3.3中的代码,为什么filter里面是断言表达式,map里面是function表达式。

这都要从lambda的原理入手,也就是JVM动态生成一个内部类,并继承其中的抽象方法。

本次主要介绍了Java函数式编程的原理以及应用,主要从Stream和lambda入手。通过一些简单的概念,以及代码,更好的理解Java的函数式编程。

掌握Java的函数式编程,对平时我们开发代码,看其他人的代码,都有很大的帮助。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2b4f380f42940681eb2650263aa79e4b.html