我一直在做一个任务,让用户可以将对象输入到LinkedList中,同时也可以将它们删除。除了这个麻烦的部分——删除重复项,我的程序已经全部完成。我已经花费了一些时间,希望有人能指点我正确的方向。
下面的代码几乎可以工作……也就是说,它确实删除了重复项……但只有它遇到的第一个元素。那么,我该如何让程序查看第一个项目、删除它的重复项,然后回过头来对列表中的所有其他元素执行同样的操作呢?我应该像“previous”和“current”这样使用节点,尝试以这种方式遍历LinkedList吗?我的教授暗示需要两个while循环,但我尝试过的所有方法都没有正常工作。我应该把什么作为第二个(我想是外部)while循环的参数呢?
非常感谢您的帮助!
下面的代码几乎可以工作……也就是说,它确实删除了重复项……但只有它遇到的第一个元素。那么,我该如何让程序查看第一个项目、删除它的重复项,然后回过头来对列表中的所有其他元素执行同样的操作呢?我应该像“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