我给你从高级for变成低级for你就明白了- package test;
- import java.util.*;
- class Test2{
- public static void main(String[] args) {
- ArrayList<String> al = new ArrayList<String>();
- al.add("abc1");
- al.add("abc2");
- al.add("abc3");
- /*
- for(String s : al)
- {
- s = "kk"; //这里对集合中的元素修改,可是打印的结果还是abc1,abc2,abc3......为什么?
- }
- System.out.println(al);
- */
-
- //上面注释的代码等同于
- for(int i=0;i<al.size();i++){
- String s=al.get(i);
- s="kk";//这和al有关系么? String s:al 给我的感觉是遍历取出里面的值,然后赋值给s
- }
- System.out.println("改变前的:"+al);
- //你要是非要变
- for(int i=0;i<al.size();i++){
- al.set(i, "kk");
- }
- System.out.println("改变后的:"+al);
- }
- }
复制代码 |