最近在學習使用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 纔會起做用。