List<Object> lo=new ArrayList<>();
    List<String> ls=new ArrayList<>();
    List<String> ls1=new ArrayList<>();

    //lo=ls;
    ls1=ls;

    ls1.add("ddd");

    System.out.println(ls.get(0));//output :ddd


我的问题是,我在ls1中添加了“ ddd”,但从ls中获得了“ ddd”。这怎么可能?ls1和ls是相同的List吗?

最佳答案

不,他们不一样。它们仅指向相同的存储位置。

ls1=ls;


上面的代码片段使两个列表都指向相同的内存位置。因此,对ls1的任何更改也会在ls中进行更改。

10-04 23:42