Java中的Stream是一种用于处理集合数据的高级抽象概念,它提供了一种函数式编程的方式来操作集合数据。下面是一些Java中Stream的常见用法:
-
创建Stream:可以通过集合对象的stream()方法来创建一个Stream对象,也可以通过Stream接口提供的静态方法来创建Stream对象。
-
过滤数据:可以使用filter()方法来过滤Stream中的数据,该方法接受一个Predicate函数式接口来定义过滤规则。
-
映射数据:可以使用map()方法来对Stream中的数据进行映射,该方法接受一个Function函数式接口来定义映射规则。
-
排序数据:可以使用sorted()方法来对Stream中的数据进行排序,该方法接受一个Comparator函数式接口来定义排序规则。
-
去重数据:可以使用distinct()方法来对Stream中的数据进行去重操作。
-
分组数据:可以使用collect()方法来对Stream中的数据进行分组操作,该方法接受一个Collector函数式接口来定义分组规则。
-
统计数据:可以使用count()、min()、max()、average()等方法来对Stream中的数据进行统计操作。
-
并行处理:可以使用parallelStream()方法来创建一个并行的Stream对象,以提高数据处理的效率。
例如,下面的代码演示了如何使用Stream来过滤、映射、排序和统计一个整数集合的数据:
List<Integer> numbers = Arrays.asList(5, 3, 8, 6, 2, 7, 1, 4);
long count = numbers.stream().filter(n -> n % 2 == 0).map(n -> n * n).sorted().count();
System.out.println("Count: " + count);
以上代码首先使用stream()方法创建一个Stream对象,然后使用filter()方法过滤出所有偶数,接着使用map()方法将每个偶数平方,然后使用sorted()方法对结果进行排序,最后使用count()方法统计结果的数量。