foreach写失效的问题

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

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

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

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

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

网站公告
欢迎加入金燕知识社群,当前加入人数:23人,最近加入时间:2018年12月04日,更多介绍请查阅:知识社群

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

  1. 板凳
    N3verL4nd:

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

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

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

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

发表评论


------====== 本站公告 ======------
金丝燕网,即将迎来四周年!

知识社群