当另一个等于原始ArrayList的ArrayList集发生更改时,原始ArrayList将被修改



我正在为一个名为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);

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

相关内容

最新更新