我的代码是
String Number = "123";
boolean NumberPresent = false;
List < Summary > smryList = smryListResponse.getSummaryList();
for (int i = 0; i < smryList.size(); i++) {
if (Number.equals(smryList.get(i).getNumber())) {
NumberPresent = true;
break;
}
}
if (NumberPresent) {
//perform some actions
}
如何用for loop
代替此完整的forEach
功能?
答案 0 :(得分:7)
这样,您可以申请每个循环。
for (Summary summary: smryList) {
if (Number.equals(summary.getNumber())) {
NumberPresent = true;
break;
}
// ...
}
答案 1 :(得分:2)
如果要检测是否显示了数字,则无需使用for
或forEach
。您可以通过.anyMatch()
方法使用流。
例如:
String number = "123";
List<Summary> smryList = smryListResponse.getSummaryList();
boolean isNumberPresent = smryList
.stream()
.anyMatch(summary -> summary.getNumber().equals(number));
if (isNumberPresent) {
// ...
}
此外,您可以尝试使用其他流方法(例如.filter()
或其他方法)进行操作。但是我更喜欢使用.anyMatch()
。
备注:流和lambda表达式仅适用于 Java 8 或以后。 否则,请使用已经发布的solution
答案 2 :(得分:0)
您可以用此循环替换for循环。
for (Summary summary : smryList) {
if (Number.equals(summary.getNumber())) {
NumberPresent = true;
break;
}
}
否则,您可以尝试
smryList.forEach(summary -> {//code here
});