Java 您所在的位置:网站首页 foreach遍历map集合时能否增删元素 Java

Java

2023-07-30 09:06| 来源: 网络整理| 查看: 265

问题:

foreach语句到底可不可以改变所遍历容器(数组与集合)的值?

我先说个答案:可以改变对象的值,但是不能删除或添加对象,也不可以改变变量(比如int a)的值,就算用集合存变量依旧不能。

概述:

我在书上看到的是这句话:当需要以其他顺序遍历数组或改变数组中的元素时,还是必须使用下标变量。

它仅仅表示的数组中不可以改变,我测试了一下,确实如此:

代码表示: import java.util.*; //导包 public class Test1 { public static void main(String[] args) {         int [] a=new int [] {1,2,3,4,5,6,7,8}; //定义数组 for(int b:a)                           //foreach遍历数组a { if(b==3)                        //如果找到b=3 { b=4;                    //把b改成4 } } System.out.println("---------输出数组");         for(int b:a)                            //再次遍历数组a,看看改变有没有影响a { System.out.println(b);          //输出a中的全部值 } } }

输出结果:

---------输出数组 1 2 3 4 5 6 7 8

很明显啊,我改的b变成4的,没变啊!!!说明b的改变不影响a的。那么大家看下我下面的例子代码:

public class Test_1 { public static void main(String[] args) { int a=1; int b=a; b=2; System.out.println("a="+a); } }

嘿嘿哈哈,a只是把值给了b,a和b是两个变量,所以b的改变不关于a。

输出结果:

a=1

那么再回头来看看之前的代码,在foreach循环中,就是把容器中的数据交给了那个element,一个道理,当容器装的是变量的时候,foreach循环是改变不了原数据的,想改变只能通过正规for循环:

for(int i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有