微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在 for-each 循环中通过一次迭代返回?

如何解决有没有办法在 for-each 循环中通过一次迭代返回?

例如,如果我要做...

for (String s : arraylist) {
    // Do something with string
}

如果不可能,是否有另一种方法可以在控制迭代计数器的同时遍历某种集合类?我试着浏览this question的答案,但想不出一个对我来说很清楚的方法

感谢任何建议!

解决方法

这取决于您要尝试做什么,但您可以使用 while-loop 并在适当时增加索引:

while(i<limit){
   list.get(i);
   // Do something

   if(someConditionMet){
     i++
   }
}

或者您可以使用 for-loop 而不在每次迭代后增加索引:

for (int i = 0; i < 5; ) {
   list.get(i);
   // Do something

    if(someConditionMet){
        i++;
    }
}

此外,如果集合实现了 Iterable,您可以使用迭代器对集合进行迭代:

List<Integer> list;

Iterator<Integer> iterator = list.iterator();

while(someCondition){
    if(someOtherContion){
        Integer next = iterator.next();
    }
}
,

您可以在循环中操作 i ......这是不可取的,但可以做到:-)

for (int i = 0; i < list.size(); i++) {
      Object o =  list.get(i);
      if (aCondition) {
        i--; //or somthing
      }
}
,

根本不要使用 For Each Element In Collection 。

创建一个循环,声明您自己的迭代器,从 0 开始直到集合 Count 属性值,并使用比较数字组件作为条件测试器。

可以使用显式迭代器值(按索引获取项目)和使用附加固定偏移量的相关项目访问集合中的当前项目。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。