java8 stream?

image
有2个疑问?

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

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

阅读 1.4k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题