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

      

  • 相关阅读:
    angular 路由动态加载JS文件
    使用AngularJS处理单选框和复选框的简单方法
    angularjs 请求后端接口请求了两次
    angular ui.router 路由传参数
    linux 安装svn服务器
    gulp css 压缩 合并
    ajax 实现跨域
    [codeforces 1366D] Two Divisors
    Namomo Test Round 1 题解
    Race(淀粉质)
  • 原文地址:https://www.cnblogs.com/47Gamer/p/13533319.html
Copyright © 2011-2022 走看看