foreach写失效的问题

栏目:Java8基础 作者:admin 日期:2015-10-30 评论:2 点击: 4,596 次

Java中的细节一定要清楚,否则非常容易出现问题。例如这个场景:遍历一个集合,对符合某种条件的元素做修改。大家往往会写出如下代码:

期待的结果是:
2
2
3
但实际输出为:
1
2
3
这是很容易掉进去的陷阱。即通过foreach遍历对集合元素进行修改。在以为变更已发生的时候,其实变更没有发生。造成数据写入失败。因为

根据oracle的官方文档,正式翻译应该如下

即:foreach里头的的 temp变量只是一个局部变量,而且还是集合中元素的一个副本,并不是元素本身。

foreach写失效的问题:等您坐沙发呢!

发表评论