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表达式,只用当两种结合时才能极大的提高编码效率。