gpt4 book ai didi

java - 链表很奇怪的删除

转载 作者:行者123 更新时间:2023-11-30 03:41:04 26 4
gpt4 key购买 nike

我有一个小型 Java 应用程序,它将执行一些数学函数。无论如何,我有这段代码,我在其中创建点并将它们添加到另一个结构中,以便稍后可以使用这些值。这是代码

/*for the sake of the example, this part is fine. these two variables are filled
earlier but this is how they are initialized */
LinkedList<Point> col = new LinkedList<Point>();
LinkedList<Point> row = new LinkedList<Point>();
/* Issue area below */
LinkedList<Point> added = new LinkedList<Point>();
while(!col.isEmpty()){
LinkedList<Point> tempRow = row;
while(!tempRow.isEmpty()){
added.add(new Point(col.getFirst().x,tempRow.getFirst().y));
tempRow.remove();
}
col.remove();
}

当此代码运行时,tempRow.remove()行也会以某种方式从实际行中删除。这对我来说没有意义,因为我已经创建了它的局部变量 temp 并调用该实例变量。有人可以解释为什么会发生这种情况吗?

最佳答案

我认为您对以下行的效果有误

LinkedList<Point> tempRow = row;

这不会创建一个全新的列表。这只是为row创建一个别名。您将其命名为 tempRow 。对其中一个的任何修改也会影响另一个。

您可以做的是创建一个新的 LinkedList,然后将行中的所有内容添加到其中。

LinkedList<Point> tempRow = new LinkedList<Point>(row);

这样 tempRow 将成为一个新列表,并将包含行中的所有点。

关于java - 链表很奇怪的删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26813336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com