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 才会起做用。

相关文章
相关标签/搜索