求大大讲解个例题,该如何处理
求大大讲解个例题
预期的结果是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();之后,两者指向的不是同一个对象了。
- 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();之后,两者指向的不是同一个对象了。