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
求大神给解释 全部家当已奉上
------解决思路----------------------
将 System.out.println(list);
修改为 System.out.println(list1 + " " + list); 看的会清晰一些
[a] [[a]]
list1 包含一个元素 a,打印结果为[a],
list 包含一个元素list1,打印结果就是[[a]] 了。
list的父类AbstractCollection重写了toString方法,让list的元素打印出来为[ ] 包括的。
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(' ');
}
}
------解决思路----------------------
List 是引用类型,引用类型的赋值只是地址的赋值,这点跟基本类型不一样。