gpt4 book ai didi

java - Java去除链表中的重复元素

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:46 25 4
gpt4 key购买 nike

我一直在做一项作业,允许用户将对象输入 LinkedList,以及删除它们。除了这里这个讨厌的部分之外,我已经弄清楚了我程序的所有领域..​​....删除重复项。我已经有一段时间了,希望有人能给我指明正确的方向。

我在下面的代码几乎 有效...因为它确实删除了重复项...但仅删除它遇到的第一个元素。那么,我如何让程序查看第一项,删除其重复项,然后返回并对列表中的所有其他元素执行相同的操作?我应该使用像“previous”和“current”这样的节点而不是我在这里得到的节点,并尝试以这种方式遍历 LinkedList 吗?我的教授暗示我需要两个 while 循环,但我尝试过的所有方法都没有正常工作。我应该将什么作为第二个参数,我假设是外部 while 循环?

非常感谢任何帮助,谢谢!

public void removeDuplicate() //searches the LinkedList for duplicate elements, and removes them
{
ListIterator iter = listIterator();

Object uniqueO = iter.next();

while (iter.hasNext())
{
String uniqueS = (String) uniqueO;
Object compareO = iter.next();
String compareS = (String) compareO;
int x = uniqueS.compareTo(compareS);
if (x == 0)
{
iter.remove();
}
}

} //end removeDuplicate

最佳答案

应该是固定的方式。但如果您不想更改原始顺序,这会有所帮助:

//在这里,您可以将集合视为一种从不允许重复的数据结构:)

     public void removeDuplicate() //searches the LinkedList for duplicate elements, and removes them
{
ListIterator iter = listIterator();

HashSet tempSet = new HashSet();


while (iter.hasNext())
{

Object obj = iter.next();
if(tempSet.contains(obj))){
iter.remove();
}else{
tempSet.add(obj);
}
}

} //end removeDuplicate

关于java - Java去除链表中的重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8162159/

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