List<List>中元素修改问题

代码1

        List<Integer> l=new ArrayList<Integer>();
        l.add(3);
        l.add(4);
        List<List<Integer>> ll=new ArrayList<List<Integer>>();
        ll.add(l);
        System.out.println(ll);
        l.add(5);
        System.out.println(ll);

输出

[[3, 4]]
[[3, 4, 5]]

原因

list修改后,list<list>中的对应的list元素也会被修改!!!

代码2

        List<Integer> l=new ArrayList<Integer>();
        l.add(3);
        l.add(4);
        List<List<Integer>> ll=new ArrayList<List<Integer>>();
        ll.add(new ArrayList<Integer>(l));
        System.out.println(ll);
        l.add(5);
        System.out.println(ll);

输出

[[3, 4]]
[[3, 4]]


猜你喜欢

转载自blog.csdn.net/qq_36025975/article/details/80565927