当前位置: 代码迷 >> J2SE >> 求大大讲解个例题,该如何处理
  详细解决方案

求大大讲解个例题,该如何处理

热度:27   发布时间:2016-04-24 01:58:01.0
求大大讲解个例题
Java code
import java.util.ArrayList;public class Test {        static void print(ArrayList al){                al.add(2);        System.out.println(al.get(0));        System.out.println(al.get(1));        System.out.println();                        al=new ArrayList();        al.add(3);        al.add(4);                System.out.println(al.get(0));        System.out.println(al.get(1));        System.out.println();    }        public static void main(String args[]){        Test test=new Test();        ArrayList al=new ArrayList();        al.add(1);                print(al);        for(int i=0;i<al.size();i++){            System.out.println(al.get(i));        }        System.out.println();        System.out.println(al.get(1));        System.out.println();    }}


预期的结果是4 为啥输出结果是2呢 arraylist 不是引用类型吗? 求大大解释下

------解决方案--------------------
1.static void print(ArrayList alArg)
2. ArrayList al=new ArrayList();
al.add(1);

print(al);

print(al)的参数al和print(ArrayList alArg)的alArg不是一个,alArg是al的副本,与al指向同一个对象。
方法中 alArg=new ArrayList();之后,两者指向的不是同一个对象了。
  相关解决方案