1.使用 filter 进行条件过滤
filter 方法允许我们从流中选择满足特定条件的元素,返回只包含满足条件的元素的新流。
例如,下面的代码使用 filter 方法从一个整数列表中选择所有大于 3 的元素:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = numbers.stream()
.filter(n -> n > 3)
.collect(Collectors.toList());
System.out.println(result); // [4, 5]
2.使用 map 进行元素转换
map 方法允许我们根据提供的函数对流中的元素进行转换,返回一个包含转换结果的新流。
例如,下面的代码使用 map 方法将一个字符串列表中的元素转换为大写字母:
List<String> words = Arrays.asList("apple", "banana", "orange");
List<String> result = words.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(result); // ["APPLE", "BANANA", "ORANGE"]
3.使用 flatMap 进行扁平化处理
flatMap 方法允许我们将流中的元素拆分成新的流,并将所有新流中的元素合并成一个流。
例如,下面的代码使用 flatMap 方法将一个字符串列表中的单词拆分成字符,并返回一个包含所有字符的新流:
List<String> words = Arrays.asList("hello", "world");
List<String> result = words.stream()
.flatMap(w -> Arrays.stream(w.split("")))
.collect(Collectors.toList());
System.out.println(result); // ["h", "e", "l", "l", "o", "w", "o", "r", "l", "d"]
4.使用 reduce 进行聚合操作
reduce 方法允许我们对流中的元素进行聚合操作,返回一个聚合结果。
例如,下面的代码使用 reduce 方法将一个整数列表中的元素相加:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int result = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println(result); // 15
5.使用 sorted 进行排序
sorted 方法允许我们对流中的元素进行排序操作,返回一个按照指定排序规则排序的新流。
例如,下面的代码使用 sorted 方法将一个字符串列表中的元素按照长度排序:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int result = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println(result); // 15
6.使用 anyMatch 进行匹配判断
anyMatch 方法允许我们判断流中是否存在满足特定条件的元素,返回一个布尔值。
例如,下面的代码使用 anyMatch 方法判断一个整数列表中是否存在大于 3 的元素:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
boolean result = numbers.stream()
.anyMatch(n -> n > 3);
System.out.println(result); // true