有没有更快的方法来增加计数器或从外部循环中中断?
while(myArrayList.get(i) > myNumber) {
// some operations
if(i + 1 < myArrayList.size())
i++;
else
break;
}
答案 0 :(得分:2)
您需要先检查尺寸,以免耗尽列表末尾并出现错误。
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
答案 1 :(得分:2)
肯定有更好的代码编写方法:
for (int i = 0; i < myArrayList.size(); i++) {
if (myArrayList.get(i) <= myNumber) break;
//Some operations...
}
答案 2 :(得分:1)
一个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++;
}
}
答案 3 :(得分:0)
我认为您想从某个索引i
开始计数,
int count=0;
for( ;((i < myArrayList.size()-1) && (myArrayList.get(i) > myNumber));i++){
count++;
}