面试题答案
一键面试- 原理:
- 在Java Stream中,中间处理方法(如
filter
、map
等)返回的是一个新的Stream
对象。这使得可以在返回的Stream
对象上继续调用其他中间处理方法,从而实现链式调用。这种设计基于Java的方法调用机制和Stream API
的设计理念,Stream
接口定义了一系列中间操作方法,每个方法操作后返回新的Stream
实例,以便继续进行后续操作。
- 在Java Stream中,中间处理方法(如
- 为什么可以这样调用:
- 因为
Stream
接口的中间操作方法的返回类型都是Stream
,遵循了连贯接口(fluent interface)的设计模式。这种设计模式允许方法调用像自然语言一样连贯,提高了代码的可读性和简洁性。
- 因为
- 示例代码:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamChainExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> squaredEvenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.map(n -> n * n)
.collect(Collectors.toList());
System.out.println(squaredEvenNumbers);
}
}
在上述代码中,首先通过stream()
方法将List
转换为Stream
,然后使用filter
方法筛选出偶数,接着用map
方法将筛选出的偶数进行平方,最后通过collect
方法将结果收集到一个List
中并输出。