Java Stream流详解:实例演示过滤、映射、排序、统计及并行操作
Java中的Stream流是一种用于处理集合数据的新特性,它提供了一种流式操作的方式,可以对集合中的元素进行过滤、映射、排序等操作,从而更加方便地进行数据处理。
下面是一些例子,以生动形象地详细解释说明Java中的Stream流的用法:
- 过滤操作:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
// 这段代码将过滤出集合中的偶数,并将它们放入新的集合evenNumbers中。
- 映射操作:
List<String> names = Arrays.asList('Alice', 'Bob', 'Charlie');
List<Integer> nameLengths = names.stream()
.map(String::length)
.collect(Collectors.toList());
// 这段代码将集合中的每个字符串映射为其长度,并将长度放入新的集合nameLengths中。
- 排序操作:
List<Integer> numbers = Arrays.asList(3, 1, 4, 2, 5);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
// 这段代码将集合中的数字进行排序,并将排序后的结果放入新的集合sortedNumbers中。
- 统计操作:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
IntSummaryStatistics stats = numbers.stream()
.mapToInt(Integer::intValue)
.summaryStatistics();
// 这段代码将集合中的数字转换为int类型,并统计其最小值、最大值、平均值等统计信息。
- 并行操作:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> doubledNumbers = numbers.parallelStream()
.map(n -> n * 2)
.collect(Collectors.toList());
// 这段代码使用并行流对集合中的数字进行处理,将每个数字都翻倍,并将结果放入新的集合doubledNumbers中。
这些例子展示了Java中Stream流的一些常见用法,它们可以使代码更简洁、易读,并提供了一种更高效的数据处理方式。
原文地址: https://www.cveoy.top/t/topic/mBdC 著作权归作者所有。请勿转载和采集!