ArrayList作为参数传进去传的是地址还是形参?
貌似是地址
List<Integer> one=new ArrayList<>();
one.add(1);
res.add(one);
one.add(2);
chang(one);
for(int i=0;i<res.size();i++){
for (int j=0;j<res.get(0).size();j++){
System.out.print(res.get(i).get(j)+", ");
}
System.out.print("\n");
}
}
static void chang(List<Integer> list){
list.add(3);
}
如果直接用=来引用,也是传址
List<Integer> one=new ArrayList<>();
one.add(1);
res.add(one);
one.add(2);
chang(one);
List<Integer> two=one;
two.add(4);
res.add(two);
for(int i=0;i<res.size();i++){
for (int j=0;j<res.get(0).size();j++){
System.out.print(res.get(i).get(j)+", ");
}
System.out.print("\n");
}
为了避免修改该对象, 想用形参就创建新的对象