Java | 您所在的位置:网站首页 › foreach遍历map集合时能否增删元素 › Java |
问题:
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 实验室设备网 版权所有 |