62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.*;
public class TestListAdd {
public static void main(String[] args) {
List list = new ArrayList();
List list1 = new ArrayList();
list.add(list1);
list1.add("a");
System.out.println(list);
int b=0;
int a=b;
b=8;
System.out.println(a);
}
}
[[a]]
0
list.add(list1);
list1.add("a");
其实,你创了建的ArrayList是完全不同的
list.add(list1); 实际是ArrayLIst<ArrayLIst> list = new ArrayList<ArrayList>();
list1.add("a"); 实际是 ArrayList<String> list1 = new ArrayList<String>();
List list = new ArrayList();
List list1 = new ArrayList();
list.add(list1);
你把list1加入到list里面,说明是list里面的数组引用指向了list1的数组引用,当list1里面加入值了,list里面也就有值了
int b=0;
int a=b;
b=8;
你把a的值给b,a,b都等于0,然后你又让b指向8,a的指向是不变的,所以还是0
public class Student {
public String name;
public static void main(String[] args) {
Student s1 = new Student();
s1.name = "s1";
Student s2 = s1;
s2.name = "s2";
System.out.println(s1.name);
}
}
这个你明白吗?
public String toString() {
Iterator<E> it = iterator();
if (! it.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next();
sb.append(e == this ? "(this Collection)" : e);
if (! it.hasNext())
return sb.append(']').toString();
sb.append(',').append(' ');
}
}