我有一個對象mypath List<List<Object>> mypath = new ArrayList<List<Object>>();
的二維列表。假設我有代碼Java Arraylist清除:清除()如何工作
mypath.add(temppath);
System.out.println("mypath: "+mypath.get(mypath.size()-1));
temppath.clear();
System.out.println("mypath: "+mypath.get(mypath.size()-1));
我看到第一個print語句對象的列表下面的行,但是從第二打印一個空列表。當我清除temppath時,似乎mypath的元素也被清除了。有沒有辦法規避這個問題?我可以清除temppath,而不清除mypath的最後一個元素嗎?
添加TEMPPATH的副本而不是mypath中。 – George
如果我通過執行temppath1 = temppath添加副本,那不起作用。 – rivu
temppath == mypath,因此您要爲自己添加相同的列表。因此,你也清除'兩'' – Alistair