咱们继续学Java第三篇:之流的转换与约简操作
在Java学习的征程中,我们一直致力于共同探索、共同成长。前面我们学习了流的创建方式,今天我们将深入探讨流的转换操作,包括filter
、map
、flatMap
等方法,以及抽取子流、连接流、其他流转换和简单约简操作,这些都是流库中非常重要的内容,能够帮助我们更高效地处理数据。
一、流的转换操作:灵活处理流中的元素
1. filter
方法:精准筛选元素
filter
方法用于根据特定条件筛选流中的元素,它接受一个Predicate
(断言)作为参数,返回一个新流,其中包含满足条件的元素。例如,我们有一个字符串列表,想要获取其中长度大于5的字符串:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
List<String> stringList = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
Stream<String> filteredStream = stringList.stream().filter(s -> s.length() > 5);
filteredStream.
forEach(System.out::println);
// 输出: banana, cherry, elderberry
2. map
方法:元素转换与映射
map
方法允许我们对流中的每个元素应用一个函数,将其转换为另一个类型,并返回一个包含转换后元素的新流。比如,将一个整数流中的每个元素乘以2:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> mappedStream