首页投稿(暂停使用,暂停投稿)

Java8 lambda表达式学习总结

2016-05-16  本文已影响0人  提笔忘字欲言又止

最近把《Java8 Lambda》这本书翻完了,就总结一下印象比较深刻的细节吧。


int sum = 0;
List<Integer>aList = Arrays.asList(1,2,3,4,5);
aList.stream().forEach(()->{sum++;}); //这是错误的例子

+ 返回stream类型的方法是lazy方法
> lazy方法里面lambda参数是不会立即求值的
```java
aList.stream().map(e->{
    System.out.println(e);
    return e;
});

以上代码是不会输出任何aList里面的元素。

eager方法则会立即求值

aList.stream().map(e->{
    System.out.println(e);
    return e;
}).count();

以上代码则会输出aList里面的每个元素。

在内置的聚合函数能满足需求的情况下, 如果只是再实现内置聚合函数的话真的是多此一举,至少代码看起来真的好难看,性能也不一定比内置的好。//之前这句话有笔误。

选择并行stream的话要主要考虑:

  • stream的大小
  • 可用的线程数
  • 操作块的大小

留坑,待填。

上一篇下一篇

猜你喜欢

热点阅读