java - 有没有办法在没有引用的情况下在 Java 中复制双重 LinkedList?

标签 java copy linked-list

我正在创建一些 Double 类型的双向链表,无论我如何声明另一个相同类型的链表,它总是引用第一个列表。

如:

LinkedList<LinkedList<Double>> trainingData = new LinkedList<LinkedList<Double>>();
LinkedList<LinkedList<Double>> newData = new LinkedList<LinkedList<Double>>();

向trainingData添加一些东西...

newData = trainingData;  

然后在新数据中更改此分配后我对 trainingData 所做的任何更改。我还尝试在 newData 的构造函数中传递 trainingData 并使用嵌套循环将 trainingData 的数据分配给 newData,但它仍然给我相同的结果,其中 newData 引用 trainingData。

最佳答案

您需要在列表中进行迭代并将每个元素复制/克隆到新列表中。

您面临的问题是 LinkedList 仅保留对其包含的元素的内部引用。当您将列表 a 复制到列表 b 时,您真正在做的是将列表 a 中的引用复制到列表 b,因此原始列表上的任何更改都会反射(reflect)到新复制的列表。

关于java - 有没有办法在没有引用的情况下在 Java 中复制双重 LinkedList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/873593/

相关文章:

c - 如何在c中声明链表

c - C中键盘输入的链表

java - 如何防止在网页上显示时下载PDF文件?

Java语句右侧小于等于

java - Spring 启动+ hibernate : Duplicate entry Exception while save entity

Java 8 功能 : Lost type information in the middle of the way

c++ - 如何在不复制的情况下将一个 vector move 到另一个 vector

go - 复制功能如何工作?

c - 使用C查找文件权限

c - 如何在C中首先迭代头为 `NULL`的循环链表?