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
中进行更改。