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

      

  • 相关阅读:
    2018-2019-1 20165308 5317 5331 实验三 实时系统
    daima
    2018-2019-1 20165308 20165317 20165331 实验二 固件程序设计
    2018-2019-1 20165308 20165317 20165331 实验一 开发环境的熟悉
    2018 第三周 20165308 缓冲区溢出漏洞实验
    20165308 信息安全系统设计基础 第一周总结
    20165308 2017-2018-2 《Java程序设计》课程总结
    2017-2018-2 20165308 实验五《网络编程与安全》实验报告
    2018-2019-2 20165320 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
    2018-2019-2 网络对抗技术 20165320 Exp5 MSF基础应用
  • 原文地址:https://www.cnblogs.com/47Gamer/p/13533319.html
Copyright © 2011-2022 走看看