java 8里面 functional operations 与 foreach 循环的区别是什么?
发布网友
发布时间:2022-05-01 09:46
我来回答
共2个回答
热心网友
时间:2023-10-25 02:17
java8中的functional operations和foreach的区别在于:
举例说明:
List<Integer> numbers;
……
for(Integer i : numbers){
System.out.println(i);
}
for循环会有个hint,提示说 can use functional operations。点了之后IDE会自动自动改成以下语句:
numbers.stream().forEach((i) -> {
System.out.println(i);
});
区别总结如下:
1、用stream做多遍数据处理时,只会触发一次for循环。而foreach循环每遍处理都需要for循环一次,效率低下。
2、stream还可以内部并行处理,比如多线程并行排序。而for语句注定是单线程的命。
热心网友
时间:2023-10-25 02:18
使用foreach, map, rece, fold的一个优势在于可以级联调用,即把多个函数调用用一条语句完整地表达其语义,不至于在冗长的代码之间变得支离破碎。
当然,foreach的语义最简单,所以用传统的for循环替代也未必不好。由于foreach没有返回值,通常会用在级联调用的两端,不破坏整体的函数式风格。