我有一个对象mypath的2D列表List<List<Object>> mypath = new ArrayList<List<Object>>();.假设我有以下代码行
mypath.add(temppath);
System.out.println("mypath: "+mypath.get(mypath.size()-1));
temppath.clear();
System.out.println("mypath: "+mypath.get(mypath.size()-1));
Run Code Online (Sandbox Code Playgroud)
我从第一个print语句中看到一个对象列表,但是从第二个print中看到一个空列表.当我清除temppath时,mypath的元素也会被清除.有办法解决这个问题吗?我可以清除temppath,而不清除mypath的最后一个元素吗?
将temppath添加到mypath时,不创建新对象,而是添加对现有对象的引用.因此,您对此对象所做的一切都将反映在引用它的任何位置.
解决此问题的一种可能方法是创建temppath的副本并将其添加到mypath.
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |