Java 8中的Stream是一种处理集合数据的新方法。它提供了一种非常强大的方式来处理集合数据,可以通过一系列的操作来对集合数据进行过滤、转换、聚合等操作。下面是Stream的常用操作示例:

创建Stream

创建Stream有两种方式:

通过集合创建Stream:

List<String> list = Arrays.asList("a","b","c");
Stream<String> stream = list.stream();

通过Stream.of方法创建Stream:

Stream<String> stream = Stream.of("a","b","c");

过滤数据

通过filter方法可以过滤数据,只保留符合条件的数据:

List<String> list = Arrays.asList("a","b","c");
Stream<String> stream = list.stream();
stream.filter(s -> s.startsWith("a"))
      .forEach(System.out::println); //输出a

转换数据

通过map方法可以对数据进行转换,将一种类型的数据转换成另一种类型的数据:

List<String> list = Arrays.asList("a","b","c");
Stream<String> stream = list.stream();
stream.map(String::toUpperCase)
      .forEach(System.out::println); //输出A B C

聚合数据

通过reduce方法可以对数据进行聚合,比如求和、求最大值、求最小值等:

List<Integer> list = Arrays.asList(1,2,3,4,5);
Stream<Integer> stream = list.stream();
int sum = stream.reduce(0, (a,b) -> a + b); //求和
int max = stream.reduce(Integer.MIN_VALUE, (a,b) -> Integer.max(a,b)); //求最大值
int min = stream.reduce(Integer.MAX_VALUE, (a,b) -> Integer.min(a,b)); //求最小值

排序数据

通过sorted方法可以对数据进行排序,可以通过自然排序或者自定义排序:

List<String> list = Arrays.asList("c","a","b");
Stream<String> stream = list.stream();
stream.sorted() //自然排序
      .forEach(System.out::println); //输出a b c
 
List<User> users = Arrays.asList(new User("张三", 18),new User("李四", 20));
Stream<User> stream = users.stream();
stream.sorted(Comparator.comparing(User::getAge)) //自定义排序
      .forEach(System.out::println); //输出张三 18 李四 20

以上就是Java 8中Stream的常用操作,通过这些操作可以轻松地对集合数据进行处理,你学会了嘛。

posted on 2023-03-16 16:21  剽悍一小兔  阅读(13)  评论(0编辑  收藏  举报  来源