最近在学习使用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 才会起做用。