相关文章推荐
首页 > 软件编程 > java > Java foreach循环是否修改数据

Java foreach循环是否可以修改数据的值问题解决方法

作者:BugMaker2002

最近在做项目的时候,需要修改一个数组里面各个元素的值,foreach循环迭代数组元素时,不能改变数组元素的值,这篇文章给大家介绍Java foreach循环是否可以修改数据的值的问题及解决方法,感兴趣的朋友一起看看吧

一、问题引出

最近在做项目的时候,需要修改一个数组里面各个元素的值,是这样的:在如图所示的程序

当中,我本想是修改数组array当中各字符串的值(将其变成大写),采取的是foreach循环,然而我运行之后发现很奇怪:数组的内容并未发生改变 ,然后我采取了for循环再次尝试对数组元素进

行修改:这次可以了!

二、问题解决

于是我上网查阅了相关的资料,看到一篇大佬发出的文章,我顿时茅塞顿开:

foreach循环迭代数组元素时,不能改变数组元素的值,因此,不要对foreach的循环变量进行赋值:基本类型数组,不可改变;但引用类型数组(除String类型),可以改变。

我顿时醒悟了!下面详细介绍:

1.基本类型数组

foreach不可以改变变量,即使用集合存变量也不可以(foreach循环中,是把容器中的数据交给了那个element,当容器中装的是变量时,foreach是改变不了元数据的,想改变只能通过for循环)。如图可以看到,并没有什么用,无法改变:

2.引用类型数组

①String类型

正如开篇所说,String类型是一个特例,无法被修改,只能通过for循环进行修改。

②其它引用类型

foreach可以改变对象的值,对象和变量不一样,变量是独立的,但是如果把一个对象传给了另一个对象,他们就是一个对象,引用的地址是一样的,所以改变其中一个就改变了另一个。如图所示:可以看到foreach可以修改对象的类型。

但foreach不能删除或添加对象(foreach循环中,是把容器中的数据交给了那个element,当容器中装的是对象时,对象的赋值(赋的是引用,即给的是原对象所在的地址)。为什么不能删除或者添加变量,因为每次进入foreach时,就会调用java.util.LinkedList.next()方法,该方法会对集合的长度进行判断,所以会出现异常,如图所示:

到此这篇关于Java foreach循环是否可以修改数据的值的文章就介绍到这了,更多相关Java foreach循环是否修改数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • Linux系统卸载重装JDK的完整流程
    Linux系统卸载重装JDK的完整流程
    2024-02-02
  • SpringBoot中MockMVC单元测试的实现
    SpringBoot中MockMVC单元测试的实现
    2024-02-02
  • Java学生信息类继承与接口的原理及使用方式
    Java学生信息类继承与接口的原理及使用方式
    2024-02-02
  • 从前端Vue到后端Spring Boot接收JSON数据的正确姿势(常见错误及问题)
    从前端Vue到后端Spring Boot接收JSON数据的正确姿势(常见错误及问题)
    2024-02-02
  • Java增强for循环的增删操作代码
    Java增强for循环的增删操作代码
    2024-02-02
  • Java的增强for循环修改数组元素的问题小结
    Java的增强for循环修改数组元素的问题小结
    2024-02-02
  • Java实现音频转码(WAV、MP3、AMR互转)
    Java实现音频转码(WAV、MP3、AMR互转)
    2024-02-02
  • Java工程使用ffmpeg进行音视频格式转换的实现
    Java工程使用ffmpeg进行音视频格式转换的实现
    2024-02-02
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2024 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号

     
    推荐文章