2014-11-03 46 views
0

我对wordList程序使用ArrayList。我有一个单独的ArrayList另一种方法,称为smallestWords。我做了“smallestWords = arrayList”,以便获得wordList的副本,我可以在不影响原始效果的情况下进行修改。但是,每当我修改smallestWords时,它也会修改wordList,这导致了我的问题。我假设这是因为设置smallestWords等于wordList只是将其设置为等于该内存位置,因为它是一种抽象数据类型,并通过引用传递。当另一个ArrayList设置等于它时,原始ArrayList被修改

我该怎么做才能获得数据的副本而不能修改它?如果你想查看程序的实际代码,只需询问。

+0

为您的正确答案添加代码。 – AsSiDe 2014-11-03 22:55:07

+0

你实际上正在复制列表还是你只是分配另一个变量? – khelwood 2014-11-03 22:56:54

回答

2

您并未复制smallestWords = arrayList。你只是分配相同的ArrayListsmallestWords

您必须使用以下方法复制:如果你想使一个ArrayList的副本

List<String> smallestWords = new ArrayList<String>(arrayList); 
0

,你可以使用:

ArrayList smallestWords = new ArrayList(wordList); 

(根据需要插入通用类型参数)

相关问题