zoukankan      html  css  js  c++  java
  • List里面添加子list,子list clear之后竟然会影响主List里面的内容

    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);
            }
        }
    }
    

      

  • 相关阅读:
    蓝桥杯之递归算法基本框架

    Dubbo是什么
    java
    java
    java
    java
    java
    负载均衡的理解
    设计模式学习
  • 原文地址:https://www.cnblogs.com/47Gamer/p/13533319.html
Copyright © 2011-2022 走看看