java - 即使我调用 .next() 一次也得到 java.util.NoSuchElementException

标签 java nosuchelementexception

即使我调用了 Iterator.next(),我仍然遇到 nosuchelementException。

ListIterator<BankAccount_4> userDataIterator = userData.listIterator();
                        while (userData.iterator().hasNext()){
                            BankAccount_4 bankAccount4 = userDataIterator.next();
                           if (bankAccount4.getAccountNum()!=bankAccount_4.getAccountNum()) {
                               userDataIterator.add(bankAccount_4);
                               String fileName = bankAccount4.getAccountNum() + " - " + bankAccount4.getCustomerAccName() + "'s Account details";
                               dataPersistency(displayAccount(bankAccount4) + "\n\n" + computeInterest(bankAccount4), fileName);
                           }
                       }

最佳答案

您的第二行( while (userData.iterator().hasNext()){ )似乎每次都检索一个新的迭代器。新的迭代器可能与现有的迭代器不在同一位置,因此您总是询问开始后是否有元素(以一种非常低效的方式)。我怀疑发生的情况是您正在迭代清除列表的末尾,因为 while 条件始终为 true。

为什么不直接查询已有的迭代器(userDataIterator.hasNext())?更好的是,为什么不直接使用 Java for-each loop并完全跳过明确地扰乱迭代器?它基本上是您正在做的事情的语法糖,但更简洁,而且没有搞砸的风险。

关于java - 即使我调用 .next() 一次也得到 java.util.NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49204848/

相关文章:

java - 移动 Java 位集

java.util.Scanner 第二个实例抛出 NoSuchElementException

java - 在 webelement 上获取 NoSuchElementException (找到相同的 webelement,但有时我得到异常)

java - 包含存在的 JPQL 子查询

java - Maven 依赖项显示在依赖项树中,但没有导入 jar

java - 使用 Varray 将值插入表中

java - 使用 Scanner 对象并循环迭代时出现 NoSuchElementException

java - 应用程序响应时间与事务服务器时间

java - Huxley : java. util.NoSuchElementException:找不到行

java - Selenium:Internet Explorer 中的 NoSuchElementException