gpt4 book ai didi

java - 如何从java中的链表中删除一个对象

转载 作者:行者123 更新时间:2023-11-29 04:31:24 26 4
gpt4 key购买 nike

我有一个名为 seatList 的链表,由像这样设置的 Seat 对象组成...

public class Seat {

int row, col;
char type;

Seat(int row, int col, char type){
this.row = row;
this.col = col;
this.type = type;
}

String printSeat(){
return "(" + row + ", " + col + ", " + type + ")";
}

}

当我尝试通过创建一个新的座位对象并将其存储在一个名为集合的单独链表中来删除具有相同属性的座位时,它们不会从链表中删除。

LinkedList<Seat> collection = new LinkedList();

for (int q : indexToRemove){
collection.add(new Seat(seatList.get(q).row, seatList.get(q).col, seatList.get(q).type));
}

for (Seat s : collection){
if (seatList.contains(s)){
println("true");
seatList.remove(s);
}

}

if (orders.get(indexes.get(index)).seatList.isEmpty()){
orders.remove((int)indexes.get(index));
}

不同的原因:链接问题讨论了如何更改您正在迭代的列表,如 csm_dev 所述

最佳答案

要从列表中删除对象,您必须使用 Iterator 并在迭代器上调用 remove() 示例:

    Iterator<Seat> collection = seatList.iterator();
while (collection.hasNext())
{
Seat element = collection.next();

//some condition on your object "element"

collection.remove();
}

并且不要忘记定义 hashCode/equals 方法逻辑来比较您的 Seat 对象

关于java - 如何从java中的链表中删除一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43690009/

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