Java 当与原始ArrayList相同的另一个ArrayList集更改时,将修改原始ArrayList

Java 当与原始ArrayList相同的另一个ArrayList集更改时,将修改原始ArrayList,java,arraylist,Java,Arraylist,我正在为一个名为wordList的程序使用ArrayList。我有一个单独的ArrayList用于另一个方法,称为smallestWords。我做“smallestWords=arrayList”是为了有一份wordList的副本,可以在不影响原始文档的情况下进行修改。但是,每当我修改smallestWords时,它也会修改wordList,这会给我带来问题。我假设这是因为将smallestWords设置为wordList只是将其设置为该内存位置,因为它是一种抽象数据类型,并通过引用传递 我如何

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


我如何才能在不修改数据的情况下获取数据副本?如果您想查看程序的实际代码,请询问

您没有使用
smallestWords=arrayList
进行复制。您只是将相同的
ArrayList
分配给
smallestWords

您应使用以下方法进行复制:

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

如果要制作
阵列列表的副本,可以使用:

ArrayList smallestWords = new ArrayList(wordList);

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

为正确答案添加代码。您是在复制列表,还是在为其分配另一个变量?