public class TestList {
static class Car {
String name;
public Car(String name) {
this.name = name;
}
public Car() {
}
}
public static void main(String[] args) {
Car c = null;
List<Car> list = new ArrayList();
for (int i = 0; i < 10; i++) {
c = new Car("Kitty" + i);
list.add(c);
}
//list里面添加的东西是同一个Car还是不同的Car呢(经确认,是不同的)
for (Car c1 : list) {
System.out.println(c1.name);
}
/**以下开启本文正文要讲解的**/
for (int i = 0; i < 10; i++) {
c = new Car("Kitty" + i);
list.add(c);
c = null;//把c添加到list之后置为null,list里面的元素会受影响吗(经确认,不会)
}
for (Car c1 : list) {
System.out.println(c1.name);
}
/**===============================================================================================================================================**/
List<List<Car>> carlistlist = new ArrayList<> ();
carlistlist.add(list);
for (Car c1 : carlistlist.get(0)) {
System.out.println(c1.name);
}
list.clear();//将添加到list里面的子list置在添加之后clear,会影响list里面的子list吗(经确认,会)
for (Car c1 : carlistlist.get(0)) {
System.out.println(c1.name);
}
/**===============================================================================================================================================**/
List<List<Car>> carlistlist2 = new ArrayList<> ();
List list2 = new ArrayList();
for (int i = 0; i < 10; i++) {
c = new Car("Kitty" + i);
list2.add(c);
}
carlistlist2.add(list2);
list2 = null;//将添加到list里面的子list置在添加之后置为null,会影响list里面的子list吗(经确认,不会)
for (Car c1 : carlistlist2.get(0)) {
System.out.println(c1.name);
}
/**===============================================================================================================================================**/
List<List<Car>> carlistlist3 = new ArrayList<> ();
List list3 = new ArrayList();
for (int i = 0; i < 10; i++) {
c = new Car("Kitty" + i);
list3.add(c);
}
carlistlist3.add(list3);
list3 = new ArrayList();//将添加到list里面的子list置在添加之后重新赋值,会影响list里面的子list吗(经确认,不会)
list3.add(new Car("car3"));
for (Car c1 : carlistlist3.get(0)) {
System.out.println(c1.name);
}
}
}