【问题标题】:Iteration loop inside another loop另一个循环内的迭代循环
【发布时间】:2015-07-09 11:27:37
【问题描述】:

有什么方法可以在另一个循环中使用迭代器? 我问这个是因为在第一个循环完成后我找不到将迭代器再次带到列表开头的方法,因此在第二个循环中 iter.hasNext() 会给我错误

Iterator iter = list.iterator();
for (int i=0;i<30;i++)
{
 while (iter.hasNext())
 {
  ...
 }

}

【问题讨论】:

  • Uhhh...移动for内的第一行?
  • 大脑有时会停止工作......我不知道为什么我没有想到这一点。

标签: java iterator nested-loops


【解决方案1】:
Iterator iter;
for (int i=0;i<30;i++)
{
    iter = list.iterator();
    while (iter.hasNext())
     {
      ...
     }

}

【讨论】:

    【解决方案2】:

    您可以在外循环中重置迭代器:

    for (int i=0;i<30;i++) {
        Iterator iter = list.iterator();
        while (iter.hasNext()) {
            Object obj = iter.next();
        }
    }
    

    【讨论】:

      【解决方案3】:

      迭代器在循环的第一个循环 (i==0) 期间被消耗。要解决此问题,您需要在循环内重新初始化 item 引用。最好的!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-23
        • 2020-07-19
        • 1970-01-01
        • 2018-05-14
        相关资源
        最近更新 更多