foreach写失效的问题

栏目:Java基础 作者:admin 日期:2015-10-30 评论:2 点击: 3,791 次

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

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

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

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

声明: 本文由金丝燕网原创编译,转载请保留链接: foreach写失效的问题,更多交流请加群:293074111

foreach写失效的问题:目前有2 条留言

  1. 板凳
    N3verL4nd:

    指针的有点久显现出来了。

    2017-05-10 下午7:27 [回复]
  2. 沙发
    box:

    看了几篇 写是写的挺好,但是 总感觉不够全面,比如这篇,如果你要修改相应的值,可以转Map,或者用其他的方法,那么其他人就可以拿来借鉴或者是给他们提供思路。另外,站长有没有让更多人参与该网站相关功能开发的想法?可以让更多有兴趣的人贡献一些力量的。

    2016-05-20 下午10:02 [回复]

发表评论