【发布时间】:2023-04-05 06:31:01
【问题描述】:
我正在尝试使这个简单的 Java 练习有效,但它没有,我不明白为什么。
这是我的代码:
public LinkedList<T> toSet()
{
LinkedList<T> retList;
retList = lista;
for(T elem1 : retList)
for(T elem2 :retList)
{
if(retList.indexOf(elem1) == retList.indexOf(elem2))
continue;
else if(elem1.equals(elem2))
retList.remove(elem1);
}
return retList;
}
该方法应删除列表中出现多次的元素。我已经用 eclipse 调试过了,发现retList.remove(elem1) 保持列表不变!
我的错误在哪里?
【问题讨论】:
-
如果这有效,它会抛出一个 CommodificationException。考虑为循环使用迭代器。
-
我建议你使用 Set。这将确保您一开始就没有重复。
-
@ValekHalfHeart:你的意思是
ConcurrentModificationException? -
@jlordo 是的,当然,我的错。
标签: java