我正在为一个名为wordList
的程序使用ArrayList
。我有一个单独的ArrayList
用于另一个方法,称为smallestWords
。我做"smallestWords = arrayList
"是为了有一份wordList
的副本,我可以在不影响原件的情况下修改它。然而,每当我修改smallestWords
时,它也会修改wordList
,这会给我带来问题。我假设这是因为将smallestWords
设置为等于wordList
只是将其设置为等于该内存位置,因为它是一种抽象数据类型,并且通过引用传递。
如何在不修改数据的情况下获得数据副本?如果您想查看程序的实际代码,只需询问即可。
您没有使用smallestWords = arrayList
进行复制。您只是将相同的ArrayList
分配给smallestWords
您应该使用以下方法复制:
List<String> smallestWords = new ArrayList<String>(arrayList);
如果您想复制ArrayList
,可以使用:
ArrayList smallestWords = new ArrayList(wordList);
(根据需要插入通用类型参数)