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

      

  • 相关阅读:
    MySQL DNS反查导致连接缓慢
    重写官方TodoList,对于初学react+redux的人来说,很有好处
    第一个博客试一试
    需求分析
    原来==的优先级比&高 (转自地址为http://blog.163.com/cynicly@126/blog/static/1206105820103893715302/的网易博客)
    E: 无法获得锁 /var/lib/apt/lists/lock open (11 Resource temporarily unavailable)
    我的博客园终于开通啦!
    (转自CSDN日新为道的专栏)printf的格式控制符,在CSDN看到的,转在这里
    qrc_image.cpp未找到
    QT打开保存的html文件无法显示图片
  • 原文地址:https://www.cnblogs.com/47Gamer/p/13533319.html
Copyright © 2011-2022 走看看