arraylist iterator equals返回java.util.NoSuchElementException

Nik*_*ola 2 java iterator exception arraylist

while(it.hasNext())
{
    System.out.println("List: " +it.next().getProduct().getName() + " " + product.getName());

    if (it.next().getProduct().getName().equals(product.getName())) 
    {
        System.out.println("asd");
    }
}
Run Code Online (Sandbox Code Playgroud)

它返回完全相同的东西:

清单:Apple Apple

清单:橘子橙

但是当我尝试比较它们时,我得到了

清单:橘子橙

线程"AWT-EventQueue-0"中的异常java.util.NoSuchElementException

而问题是在IF()行..如果我有或无的getName(比较它们没关系)(因为它们是相同的对象.)任何想法?

Bhe*_*ung 12

您应该next()在每次迭代时只调用一次该方法.它会在每次调用next()方法时将光标移动到下一个元素.你不想这样做,以确保hasNext()在每次调用之前执行next(),以避免超过最后一个元素.

它将如下所示

Product p = it.next();
//and use p onwards
Run Code Online (Sandbox Code Playgroud)