我正在使用ArrayList
作为名为wordList
的程序。我有一个单独的ArrayList
用于另一种方法,称为smallestWords
。我执行“smallestWords = arrayList
”以获得wordList
的副本,我可以在不影响原始内容的情况下进行修改。但是,每当我修改smallestWords
时,它也会修改wordList
,这会导致我出现问题。我假设它是因为设置smallestWords
等于wordList
只是将它设置为等于该内存位置,因为它是一个抽象数据类型,并通过引用传递。
我怎样才能这样做,以便获得数据的副本而无法修改它?如果你想查看该程序的实际代码,请询问。
答案 0 :(得分:2)
您没有使用smallestWords = arrayList
进行复制。您只是将ArrayList
分配给smallestWords
您应该使用以下方法复制:
List<String> smallestWords = new ArrayList<String>(arrayList);
答案 1 :(得分:0)
如果您想制作ArrayList
的副本,可以使用:
ArrayList smallestWords = new ArrayList(wordList);
(根据需要插入通用类型参数)