为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种算法可以围绕 ArrayList 进行循环迭代?

有没有一种算法可以围绕 ArrayList 进行循环迭代?

拉风的咖菲猫 2023-10-13 09:58:32
也就是说,当我到达纸张末尾时,下一个元素为零。
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

尝试这个:


ArrayList<Object> list = new ArrayList<>(); // + add some values to the list


for (int i = 0; i < list.size(); i++) {

    someMethod();

    if (some condition) {

        break; // you need to add some break condition, otherwise, this will be an infinite loop

    }

    if (i == list.size() - 1) {

        i = -1;

    }

}


查看完整回答
反对 回复 2023-10-13
?
开满天机

TA贡献1786条经验 获得超13个赞

就在这里:


考虑以下代码:


for (int i = 0; i < 100; i++) {

   // Output will be: 0,1,2,3,4,5,6,7;0,1,2,3,4,5,6,7;...

   System.out.println(i % 8);

}


查看完整回答
反对 回复 2023-10-13
?
万千封印

TA贡献1891条经验 获得超3个赞

鉴于您已经声明并填充了ArrayList我将调用的list,那么您只需对列表大小取模即可进行迭代。具体如何写取决于您想要做什么。


1)一直循环下去:


int index = 0;

while (true) {

    value = list.get(index);

    … process value here …

    index = (index + 1) % list.size();

    // or equivalently to previous line: if (++index >= list.size) index = 0;

}

2) 精确地循环列表一次,但从某个任意点开始base:


for (int offset = 0; offset < list.size(); offset++) {

    int index = (base + offset) % list.size();

    value = list.get(index);

    … process value here …

}

等等...


可以设计方法来使用显式迭代器而不是索引,但这完全取决于您想要实现的目标。


查看完整回答
反对 回复 2023-10-13
  • 3 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信