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

      

  • 相关阅读:
    DEDECMS5.5/5.6/5.7列表页调用TAG标签(热门标签)的两种方法
    DEDE列表页和内容页调用顶级栏目ID的方法
    解决dede图集上传图片时跳出302错误
    DEDE用{dede:sql}标签取出当前文档的附加表中的内容
    DEDE模板中如何运行php脚本和php变量的使用
    织梦DEDECMS {dede:arclist},{dede:list}获取附加表字段内容
    把DEDE的在线文本编辑器换成Kindeditor不显示问题
    ExtJS:文件上传实例
    ExtJS:GridPanel之renderer:function()和itemdblclick : function()方法参数详解
    ExtJS:菜单ComboBox及级联菜单应用
  • 原文地址:https://www.cnblogs.com/47Gamer/p/13533319.html
Copyright © 2011-2022 走看看