3 回答
TA贡献1806条经验 获得超8个赞
编写代码的更好方法肯定存在:
for (int i = 0; i < myArrayList.size(); i++) {
if (myArrayList.get(i) <= myNumber) break;
//Some operations...
}
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
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++;
}
}
添加回答
举报