Java Stream

本文详细介绍了Java8引入的StreamAPI,包括如何创建Stream、使用filter过滤、map映射、sorted排序以及终止操作如collect和count。StreamAPI提供了更简洁和高效处理集合元素的方式,提高了代码的可读性和可维护性。
摘要由CSDN通过智能技术生成

Java Stream 详解

Java 8 引入了 Stream API,使得集合操作变得更加简单和高效。Stream 是一种数据处理方式,可以让我们以一种声明式的方式处理集合中的元素。本文将对 Stream 进行详细的介绍,包括创建、过滤、映射、排序等操作,并提供相应的示例代码。

Stream 的创建

在 Java 中,可以通过调用集合的 stream() 方法来创建一个 Stream 对象。例如,以下是一个创建 Stream 对象的示例:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");

// 创建 Stream 对象
Stream<String> stream = names.stream();

在上面的示例中,使用 Arrays.asList() 函数创建一个字符串列表,并使用 names.stream() 的方式创建一个 Stream 对象。

Stream 的过滤

在 Java 中,可以通过 filter() 方法来过滤 Stream 中的元素。例如,以下是一个过滤 Stream 对象的示例:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");

// 创建 Stream 对象
Stream<String> stream = names.stream();

// 过滤 Stream 对象
Stream<String> filteredStream = stream.filter(name -> name.startsWith("A"));

// 打印过滤后的结果
filteredStream.forEach(System.out::println);

在上面的示例中,使用 filter() 方法过滤 Stream 中以 “A” 开头的元素,并使用 forEach() 方法遍历输出过滤后的结果。

Stream 的映射

在 Java 中,可以通过 map() 方法来映射 Stream 中的元素。例如,以下是一个映射 Stream 对象的示例:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");

// 创建 Stream 对象
Stream<String> stream = names.stream();

// 映射 Stream 对象
Stream<String> mappedStream = stream.map(name -> name.toUpperCase());

// 打印映射后的结果
mappedStream.forEach(System.out::println);

在上面的示例中,使用 map() 方法将 Stream 中的元素映射为大写字母,并使用 forEach() 方法遍历输出映射后的结果。

Stream 的排序

在 Java 中,可以通过 sorted() 方法对 Stream 中的元素进行排序。例如,以下是一个排序 Stream 对象的示例:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");

// 创建 Stream 对象
Stream<String> stream = names.stream();

// 排序 Stream 对象
Stream<String> sortedStream = stream.sorted();

// 打印排序后的结果
sortedStream.forEach(System.out::println);

在上面的示例中,使用 sorted() 方法对 Stream 中的元素进行排序,并使用 forEach() 方法遍历输出排序后的结果。

Stream 的终止操作

在 Java 中,Stream 的操作可以分为中间操作和终止操作两种。中间操作会返回一个新的 Stream 对象,而终止操作会返回一个非 Stream 类型的值。例如,上面的示例中使用的 forEach() 方法就是一个终止操作。

Java 中还提供了一些常用的终止操作,例如:

  • collect():将 Stream 中的元素收集到一个集合中。
  • count():统计 Stream 中元素的个数。
  • reduce():对 Stream 中的元素进行归约操作。

例如,以下是一个使用 collect() 方法将 Stream 中的元素收集到一个集合中的示例:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");

// 创建 Stream 对象
Stream<String> stream = names.stream();

// 将 Stream 中的元素收集到一个集合中
List<String> collectedList = stream.collect(Collectors.toList());

// 打印收集后的结果
System.out.println(collectedList);

在上面的示例中,使用 collect() 方法将 Stream 中的元素收集到一个集合中,并使用 System.out.println() 方法打印收集后的结果。

总结

本文介绍了 Java 中 Stream 的创建、过滤、映射、排序和终止操作等常用操作。相较传统的集合操作,Stream API 可以让我们以一种更加简单和高效的方式处理集合中的元素。使用 Stream API 可以让我们写出更加简洁和易于维护的代码,提高程序的可读性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风老魔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值