小编Dre*_*iak的帖子

从 Java 中的 LinkedList 中删除重复元素

我一直在从事一项任务,允许用户将对象输入到链接列表中,以及删除它们。我已经弄清楚了程序的所有区域,除了这里讨厌的部分......删除重复项。我已经从事这个工作有一段时间了,希望有人能给我指出正确的方向。

我下面的代码几乎可以工作...因为它确实删除了重复项...但仅删除了它遇到的第一个元素。那么,如何允许程序查看第一个项目,删除其重复项,然后返回并对列表中的所有其他元素执行相同的操作?我是否应该使用“上一个”和“当前”之类的节点而不是我在这里得到的节点,并尝试以这种方式遍历 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
Run Code Online (Sandbox Code Playgroud)

java linked-list duplicates while-loop

5
推荐指数
1
解决办法
9201
查看次数

Java - 向LinkedList提供对象时接收NullPointerException

这个问题可能是一个简单的解决方案,我整晚都在这里.至少我希望有.当试图向我的subQueues LinkedList提供一个对象时,我收到一个NullPointerException.我的程序打印出正确的"头"对象和"数字"整数,但随后抛出异常并结束程序.

简而言之,我的程序应该采用一个mainQueue LinkedList的整数,逐个查看它们,并对它们进行排序.它检查每个整数的最后一位数,并将它们放入相应的subQueues中.截至目前,我只到那个地方.在我克服了这个困境后,我将能够计算出数十,数百等.

例)

mainQueue = { 12 50 215 100 85 539 16 35 }
subQueue[0] = { 50 100 }
subQueue[1] = { }
subQueue[2] = { 12 }
subQueue[3] = { }
subQueue[4] = { }
subQueue[5] = { 215 85 35 } 
subQueue[6] = { 16 }
subQueue[7] = { }
subQueue[8] = { }
subQueue[9] = { 539 }
Run Code Online (Sandbox Code Playgroud)

那么我在这里做错了什么?就像我说的,一旦我遇到这个小问题,程序的其余部分应该是轻而易举的.任何帮助表示赞赏,谢谢!

public class Sorting
 {
   private LinkedList mainQueue;
   private LinkedList[] subQueues;
   private final int SIZE …
Run Code Online (Sandbox Code Playgroud)

java linked-list nullpointerexception

0
推荐指数
1
解决办法
718
查看次数