欢迎访问宙启技术站
智能推送

Java中流(Stream)函数详解及案例分享

发布时间:2023-07-04 00:17:18

流(Stream)是Java 8中引入的一个全新的概念,它提供了一种对集合数据进行函数式操作的方式。Stream本质上是一个元素序列,它并不会修改源数据,而是通过对元素进行各种操作来产生新的流。在这篇文章中,我将详细介绍流的各种方法及其使用示例。

1. 创建流

在Java中,可以通过集合的stream()方法来创建一个流,示例代码如下:

List<String> list = Arrays.asList("apple", "banana", "orange");

Stream<String> stream = list.stream();

2. 流的转换

流提供了多种转换方法来对元素进行操作,包括:过滤、映射、排序等。下面是一些常用的转换方法及其使用示例:

- 过滤:filter()方法用于过滤满足指定条件的元素,示例代码如下:

stream.filter(s -> s.startsWith("a"));

- 映射:map()方法用于对元素进行映射操作,示例代码如下:

stream.map(s -> s.toUpperCase());

- 排序:sorted()方法用于对元素进行排序操作,示例代码如下:

stream.sorted();

3. 流的聚合

流也提供了多种聚合方法用于对元素进行组合操作,包括:计数、求和、最大值、最小值等。下面是一些常用的聚合方法及其使用示例:

- 计数:count()方法用于统计流中元素的个数,示例代码如下:

stream.count();

- 求和:sum()方法用于对数字流中的元素求和,示例代码如下:

stream.mapToInt(Integer::parseInt).sum();

- 最大值:max()方法用于找出流中的最大值,示例代码如下:

stream.mapToInt(Integer::parseInt).max();

- 最小值:min()方法用于找出流中的最小值,示例代码如下:

stream.mapToInt(Integer::parseInt).min();

4. 流的终端操作

流的终端操作是对流的最终操作,它会触发流的处理,并产生一个最终结果或副作用,包括:forEach、collect等。下面是一些常用的终端操作及其使用示例:

- 遍历:forEach()方法用于遍历流中的元素,示例代码如下:

stream.forEach(System.out::println);

- 收集:collect()方法用于将流中的元素收集到一个集合中,示例代码如下:

List<String> collectedList = stream.collect(Collectors.toList());

以上就是Java中流(Stream)函数的详细介绍及案例分享。通过使用流,我们可以以更加函数式的方式对集合数据进行操作,实现代码的简洁和高效。希望本文能够对您在使用流时有所帮助。