Dor*_*yuX 1 java copy linked-list
我正在创建一个Double类型的双向链表,无论我如何声明另一个相同类型的链表,它总是引用第一个列表.
如:
LinkedList<LinkedList<Double>> trainingData = new LinkedList<LinkedList<Double>>();
LinkedList<LinkedList<Double>> newData = new LinkedList<LinkedList<Double>>();
Run Code Online (Sandbox Code Playgroud)
添加一些东西到trainingData ...
newData = trainingData;
Run Code Online (Sandbox Code Playgroud)
然后,在newData中更改此赋值后,我对trainingData所做的任何更改.我也尝试在newData的构造函数中传递trainingData,并使用嵌套循环将trainingData的数据分配给newData,但它仍然给我相同的结果,其中newData引用trainingData.
您需要在列表中进行迭代,并将每个元素复制/克隆到新列表中.
您面临的问题是LinkedList仅保留对其包含的元素的内部引用.当您将列表a复制到列表b时,您实际在做的是将列表a中的引用复制到列表b,因此原始列表上的任何更改都会反映到新复制的列表中.