Java8的Stream神器

简介: Java8的Stream神器

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

am的常用操作示例:


创建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的常用操作,通过这些操作可以轻松地对集合数据进行处理,你学会了嘛。

相关文章
|
19小时前
|
安全 Java 大数据
|
19小时前
|
SQL 存储 Java
java流式计算Stream
java流式计算Stream
12 0
|
19小时前
|
Java API
掌握Java 8 Stream API的艺术:详解流式编程(三)
掌握Java 8 Stream API的艺术:详解流式编程
16 2
|
20小时前
|
Java Unix Windows
|
19小时前
|
Java API 数据处理
Java一分钟之-Stream API:数据处理新方式
【5月更文挑战第13天】Java 8的Stream API为集合操作提供了声明式编程,简化数据处理。本文介绍了Stream的基本概念、常见问题和易错点。问题包括并行流与顺序流的区别,状态改变操作的影响,以及忘记调用终止操作和误用`peek()`。理解并合理使用Stream API能提升代码效率和可维护性。实践中不断探索,将发掘更多Stream API的潜力。
11 3
|
20小时前
|
安全 Java API
Java Stream API详解与使用
Java Stream API是Java 8引入的特性,提供函数式操作处理集合,支持链式操作和并行处理,提升代码可读性和性能。关键点包括:延迟执行的中间操作(如filter, map)和触发计算的终端操作(如collect, forEach)。示例展示了如何从Person列表过滤出年龄大于20的姓名并排序。使用Stream时注意避免中间操作的副作用,终端操作后Stream不能复用,以及并行操作的线程安全性。
|
19小时前
|
Java 程序员 API
Java 8新特性之Lambda表达式与Stream API的深度解析
【5月更文挑战第12天】本文将深入探讨Java 8中的两个重要新特性:Lambda表达式和Stream API。我们将从基本概念入手,逐步深入到实际应用场景,帮助读者更好地理解和掌握这两个新特性,提高Java编程效率。
41 2
|
20小时前
|
Java API
【JAVA进阶篇教学】第三篇:JDK8中Stream API使用
【JAVA进阶篇教学】第三篇:JDK8中Stream API使用
|
19小时前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【5月更文挑战第1天】本文将介绍Java 8中的两个重要特性:Lambda表达式和Stream API。Lambda表达式是一种新的函数式编程语法,可以简化代码并提高可读性。Stream API是一种用于处理集合的新工具,可以方便地进行数据操作和转换。通过结合Lambda表达式和Stream API,我们可以更加简洁高效地编写Java代码。
|
19小时前
|
Java
Java8 Stream Collectors groupingBy使用
Java8 Stream Collectors groupingBy使用