试图比较两个迭代器的内容,如何?

use*_*152 1 java iterator compare input listiterator

编辑:在您的帮助下,我设法解决了我的问题。我已经编辑了我的代码,现在显示我必须如何设置它才能使其正常工作。

目前我在编写比较两个迭代器内容的部分时遇到问题。作为我的作业要求的一部分,我需要使用链表来存储输入字符串的各个字符。我已经到了我有两个迭代器的地步,它们将包含一种方式和相反方式的输入。

        String palindrom = input.getText();
        String [] chara = palindrom.split (""); //this is successfully splitting them, tested.


        int length = palindrom.length( ); // length == 8
        System.out.println (length); //can use this for how many checks to do?
        LinkedList ll = new LinkedList(Arrays.asList(chara));


        Iterator iterator = ll.iterator();
        Iterator desIterator = ll.descendingIterator();

        /*while(iterator.hasNext() ){
            System.out.println(iterator.next() );
        }

        while(desIterator.hasNext() ){
            System.out.println(desIterator.next() );
        }*/
        boolean same = true;
        while(iterator.hasNext()){
            if(!iterator.next().equals(desIterator.next())){
            same = false;
            break;
          }
        }
Run Code Online (Sandbox Code Playgroud)

使用 System.out 我可以看到它们被正确存储,但我不知道如何检查迭代器是否存储相同的内容。比较两个迭代器或将它们转换为我可以比较的东西的最简单方法之一是什么?为了澄清我想验证它们以相同的顺序包含相同的元素。

sat*_*nam 7

boolean same = true;
while(iterator.hasNext()){
  if(!desIterator.hasNext() || !iterator.next().equals(desIterator.next())){
    same = false;
    break;
  }
}

System.out.println(same);
Run Code Online (Sandbox Code Playgroud)