我们有一个符合条件的学生列表-列表
Student {
String name;
..........
..........
Status status = Status.NONE;
}
我们需要将所有符合条件的学生的默认设置为STATUS. PASSED
Java8是否有比for(学生中的学生)
循环更好/更短的选项?
对于更短的实现,您可以使用for各()
:
students.forEach(s -> s.status = Status.PASSED);
对于更高性能的实现,传统的for
循环可能会减少几毫秒,具体取决于编译器/运行时优化:
for (int i = 0; i < students.size(); i++) {
students.get(i).status = Status.PASSED;
}
您可以使用for每
:
students.forEach(s -> s.setStatus(STATUS.PASSED));
如果是有条件的,那么:
students.stream()
.filter(s -> hasPassed(s))
.forEach(s -> s.setStatus(STATUS.PASSED));
或者更短:
students.forEach(s -> s.setStatus(hasPassed(s) ? STATUS.PASSED : Status.NONE));