首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

介绍一下Java中的java.util.stream.Stream类,举例说明它的用法

Java中的java.util.stream.Stream类是Java 8引入的一个用于处理集合元素的流式处理工具。它提供了一种更简洁、更灵活的方式来进行集合操作,例如过滤、映射、排序和聚合。

Stream类有两种类型:流处理中的数据源可以是集合,也可以是数组。Stream类提供了许多方法来对数据源进行操作和处理,这些方法可以按需求链式调用。

以下是一些常用的Stream类方法及其示例:

1. filter方法:过滤满足特定条件的元素。

List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);

List evenNumbers = numbers.stream()

.filter(n -> n % 2 == 0)

.collect(Collectors.toList());

System.out.println(evenNumbers);    // 输出 [2, 4, 6, 8]

2. map方法:对每个元素应用给定的函数,将元素转换成另一种形式。

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

List nameLengths = names.stream()

.map(String::length)

.collect(Collectors.toList());

System.out.println(nameLengths);    // 输出 [5, 3, 7]

3. sorted方法:对流中的元素进行排序。

List numbers = Arrays.asList(3, 1, 6, 2, 5, 4);

List sortedNumbers = numbers.stream()

.sorted()

.collect(Collectors.toList());

System.out.println(sortedNumbers);    // 输出 [1, 2, 3, 4, 5, 6]

4. reduce方法:根据给定的二元操作函数进行元素的聚合操作。

List numbers = Arrays.asList(1, 2, 3, 4, 5);

Optional sum = numbers.stream()

.reduce((x, y) -> x + y);

System.out.println(sum.orElse(0));    // 输出 15

以上只是Stream类的一小部分方法和用法,Stream类还提供了许多其他强大且方便的方法,例如distinct、limit、skip等等,它们都能帮助我们更好地处理和操作集合中的元素。值得注意的是,Stream类的所有操作都是惰性求值的,即只有在终止操作时才会触发实际的计算。这使得我们能够更高效地处理大量的数据。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O4HFgHIs2BcPx5DddsRpdxlg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券