过滤(Filtering)
使用Streams API,我们可以轻松地根据指定条件来过滤集合中的元素。假设我们有一个包含整数的列表,我们可以使用filter
方法选择所有大于5的元素。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> filteredNumbers = numbers.stream()
.filter(num -> num > 5)
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [6, 7, 8, 9, 10]
映射(Mapping)
Streams API还允许我们对集合中的元素执行某种操作,并将其转换为另一种形式。例如,我们可以将一个字符串列表转换为大写形式的字符串列表。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> upperCaseNames = names.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(upperCaseNames); // 输出: [ALICE, BOB, CHARLIE]
排序(Sorting)
通过Streams API,我们可以很容易地对集合进行排序。例如,我们可以对一个字符串列表按字母顺序进行排序。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> sortedNames = names.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedNames); // 输出: [Alice, Bob, Charlie]
统计(Statistics)
Streams API还提供了一些有用的统计方法。例如,我们可以计算一个整数列表中的最大值、最小值、总和以及平均值。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
IntSummaryStatistics stats = numbers.stream()
.mapToInt(Integer::intValue)
.summaryStatistics();
System.out.println("最大值: " + stats.getMax());
System.out.println("最小值: " + stats.getMin());
System.out.println("总和: " + stats.getSum());
System.out.println("平均值: " + stats.getAverage());
以上只是Streams API的一些简单示例,它还提供了更多的功能和操作。使用Java Streams可以使我们的代码更简洁、可读性更高,并且能够更好地利用多核处理器的并行性能。希望本篇博客能帮助你更好地理解和使用Java Streams。