lambda表達式學習中遇到的坑

最近在學習使用java8 lambda表達式。根據方法的字面意思,很容易理解和上手運用。

java

但最近在使用lambda表達式時遇到了一個問題,代碼邏輯沒有一點問題,但結果就是不盡如人意。學習

先上舊代碼:測試

testOneList.stream().distinct().filter(item -> 調試

  。。。。。it

).map(item -> testTwoList.add(new TestTwoModel(item,.....)));java8

我開始懷疑我是否是運用錯方法了,難道這個方法不能如此使用?沒道理呀。上網查了許久,不斷的測試調試,都沒發現問題所在。test

 

最後請求了大神,方明白錯誤所在。改爲:stream

testOneList.stream().distinct().filter(item ->lambda

  。。。。。List

).forEach(item -> testTwoList.add(new TestTwoModel(item,.....)));

 

map自己不是個結束點,放在最後是會被忽略的,要改爲 forEach 或者後面加個 collect 纔會起做用。

相關文章
相關標籤/搜索