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

打破循环或增加计数器的更快方法?

打破循环或增加计数器的更快方法?

GCT1015 2021-10-28 17:32:15
有没有更快的方法来增加计数器或从外循环中断?while(myArrayList.get(i) > myNumber) {    // some operations    if(i + 1 < myArrayList.size())        i++;    else        break;}
查看完整描述

3 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

编写代码的更好方法肯定存在:


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

    if (myArrayList.get(i) <= myNumber) break;

    //Some operations...

}


查看完整回答
反对 回复 2021-10-28
?
繁花如伊

TA贡献2012条经验 获得超12个赞

您需要先检查大小以避免超出列表末尾并出现错误。


int i;

for (i = 0; i < myArrayList.size(); i++) 

    if (myArrayList.get(i) <= myNumber)

        break;

使用 Streams API,您可以做到


int n = IntStream.range(0, myArrayList.size())

                 .filter(i -> myArrayList.get(i) <= myNumber)

                 .findFirst()

                 .orElse(myArrayList.size()); // or -1


查看完整回答
反对 回复 2021-10-28
?
弑天下

TA贡献1818条经验 获得超8个赞

for 循环在这里更合适:


int counter = 0


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

    if(!(myArrayList.get(i) > myNumber)) {

        break;

    }


    counter++;

}

如果意图是大于 的计数值myNumber,则break可能会排除某些值(除非您知道它myArrayList已排序),并且循环应该是:


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

    if(myArrayList.get(i) > myNumber) {

        counter++;

    }

}


查看完整回答
反对 回复 2021-10-28
  • 3 回答
  • 0 关注
  • 208 浏览

添加回答

举报

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