Jdk 8.0 新特性 Lambda表达式 List集合 for

2020-07-02  本文已影响0人  奇点一氪

前言:Lambda使代码简洁,与stream搭配使用,能充分利用多核,实现真正的并行,如果数据量不大,只能起到简化代码的作用,性能方面并没有太突出的优势,甚至会比for循环差,因为程序第一次使用lamda的时候需要初始化一些lambda框架的东西,这些也要花费时间,而for循环就不需要这些时间开销,上来就能执行。当迭代的数据量大的时候,lambda性能优势就体现出来了。

Java SE8.0添加了2个对集合数据进行批量操作的包:java.util.function包以及java.util.stream包。流(stream)就如同迭代器(iterator)。总的来说,lambda表达式和stream是子java语言添加泛型(generica)和注解(annotation)以来最大的变化。
forEach(->)的使用

        //forEach的使用
        List<String> wordList=Lists.newArrayList();
        wordList.add("a");
        wordList.add("z");
        wordList.add("c");
 
        wordList.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                //字母升序
                return o1.compareTo(o2);
            }
        });
        wordList.forEach(word->System.out.println(word));//相当于for循坏
 
        //用 Lambda 排序
        wordList.sort((String o1,String o2)->{
            return o1.compareTo(o2);
        });

stream的使用:

stream能够对集合对象进行各种串行或者并发聚集操作,依赖lambda表达式,只用当两种结合时才能极大的提高编码效率。

上一篇下一篇

猜你喜欢

热点阅读