【发布时间】:2011-11-17 04:34:42
【问题描述】:
我一直在处理一项允许用户将对象输入到 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
【问题讨论】:
标签: java while-loop linked-list duplicates