Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
433 views
in Technique[技术] by (71.8m points)

java8 stream?

image
有2个疑问?

1:不要修改在执行某项流操作后会将元素返回到流中的集合。所有的集合不都是对他进行某项流操作后就会将元素返回到流中吗?

2:流不会收集他们的数据,数据总是在单独的集合中。上面第一条写明对集合进行某项修改操作后会将元素返回到流中,这个不是有点矛盾,流不存储数据怎么集合在被流操作修改后还能返回元素到流中?
image
3:第一张图说如果修改了这样的集合流操作的结果就是未定义的,对应到图2,这个forEach为啥不能这样写?为啥修改集合了流操作结果就是未定义的?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

image.png
image.png
前面说的啥意思我没看懂 不过这个foreach会错跟前面半毛钱关系没有,foreach方法需要你传一个consumer ,consumer接口如下 你的表达式里写给if语句当然呀要报错了
你可以这样写 image.png
我觉得实际上我们不应该在foreach中去修改这个集合,对于一个集合进行stream一系列操作后我们可以得到一个新的集合,避免原来的数据还需要使用的时候没有办法。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...