Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 翻转集合中的标志_Java_Java 8 - Fatal编程技术网

Java 翻转集合中的标志

Java 翻转集合中的标志,java,java-8,Java,Java 8,我们有一个合格的学生名单-名单 我们需要将所有符合条件的学生的默认值设置为状态。通过 Java 8是否有比for(student in students)循环更好/更短的选项?对于更短的实现,可以使用forEach(): 对于更高性能的实现,传统的For循环可能会缩短几毫秒,具体取决于编译器/运行时优化: for (int i = 0; i < students.size(); i++) { students.get(i).status = Status.PASSED; } fo

我们有一个合格的学生名单-
名单

我们需要将所有符合条件的学生的默认值设置为
状态。通过


Java 8是否有比for(student in students)
循环更好/更短的选项?

对于更短的实现,可以使用
forEach()

对于更高性能的实现,传统的
For
循环可能会缩短几毫秒,具体取决于编译器/运行时优化:

for (int i = 0; i < students.size(); i++) {
    students.get(i).status = Status.PASSED;
}
for(int i=0;i
您可以使用
forEach
实现以下目的:

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));

在将标志设置为
状态之前,需要传递一个事件。传递了
@VishwaRatna什么事件?问题没有提供任何事件的细节;它只是说“活动结束后,我们需要设置…”。或者你指的是一个条件而不是一个事件?还是争论?问题中也没有关于条件或论点的内容…在事件发生后,我们需要将所有合格学生的默认值设置为状态。通过事件是解决方案的一部分,不是吗?@VishwaRatna“我们有一个合格学生的列表。在事件发生后,我们需要设置所有合格学生的默认值…”我们有一个合格学生的列表,列表(学生s:Students)
有什么问题,就用它吧。Java8没有提供任何更好的替代方案。@Naman等人。如果你发现这个问题有一个很好的副本,我完全赞成这个副本,但目前存在的副本根本没有解决这个问题。问题中没有任何地方提到条件或过滤。@RobbyCornelissen同意您的意见,并且没有将其标记为重复。@RobbyCornelissen我很遗憾错过了细节。谢谢你这么说。我希望更新的链接能够解决当前的问题。
students.stream()
    .filter(s -> hasPassed(s))
    .forEach(s -> s.setStatus(STATUS.PASSED));
students.forEach(s -> s.setStatus(hasPassed(s) ? STATUS.PASSED : Status.NONE));