final与Java Stream API中的中间操作与终端操作
发布时间:2024-10-10 11:33:22
来源:亿速云
阅读:86
作者:小樊
栏目:编程语言
在Java中,final关键字和Java Stream API的中间操作与终端操作是两个不同的概念,但它们在编程中都扮演着重要的角色。
final关键字:
final是Java中的一个关键字,用于声明一个变量、方法或类为常量或不可修改。
当用于变量时,final变量一旦被赋值后就不能再改变。
当用于方法时,final方法不能被子类重写。
当用于类时,final类不能被继承。
在Stream API的上下文中,final通常不直接相关,但你可能会在某些情况下遇到它,例如在使用collect方法时,可能需要将结果存储在一个final变量中。
Java Stream API中的中间操作与终端操作:
中间操作:中间操作不会立即执行,而是返回一个新的Stream流。这些操作是惰性的,只有在执行终端操作时才会被触发。常见的中间操作有filter(), map(), flatMap(), sorted(), distinct()等。
终端操作:终端操作会触发Stream上的所有中间操作,并产生一个结果。终端操作是不可惰性的,它们会立即执行并得到结果。常见的终端操作有forEach(), toArray(), reduce(), collect(), anyMatch(), allMatch(), noneMatch()等。
下面是一个简单的例子,展示了如何使用Java Stream API的中间操作和终端操作:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List
// 中间操作:过滤出偶数
List
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println("Even numbers: " + evenNumbers);
// 终端操作:计算偶数的和
int sumOfEvenNumbers = evenNumbers.stream()
.mapToInt(Integer::intValue)
.sum();
System.out.println("Sum of even numbers: " + sumOfEvenNumbers);
}
}
在这个例子中,filter()是一个中间操作,用于从原始列表中过滤出偶数。collect()是一个终端操作,用于将过滤后的结果收集到一个新的列表中。然后,我们使用另一个终端操作mapToInt()和sum()来计算这个新列表中所有数字的和。