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

如何在Java函数中使用Stream API?

发布时间:2023-06-19 11:46:32

Java 8引入了Stream API,使处理集合和数组数据变得更加简单和优雅。Stream API是一种流式处理元素的方式,允许在集合(数组、列表等)中对元素进行函数式操作,例如过滤、映射、排序等。本文将介绍如何在Java函数中使用Stream API。

1. 创建Stream

可以从集合中创建Stream,例如:

List<String> list = Arrays.asList("cat", "dog", "bird");
Stream<String> stream = list.stream();

也可以从数组中创建Stream,例如:

String[] array = new String[] { "cat", "dog", "bird" };
Stream<String> stream = Arrays.stream(array);

2. Stream的中间操作

Stream上有许多中间操作,这些操作只是将Stream变换为另一个Stream,并未产生终止操作。在中间操作中,可以使用过滤、映射、排序等方法。

2.1 过滤(filter)

filter方法用于过滤出符合条件的数据,并将符合条件的数据放入一个新的Stream中。例如:

Stream<String> filteredStream = stream.filter(s -> s.contains("a"));

这个例子中,filter方法过滤出包含"a"字符的元素,然后将这些元素放入新的Stream中。

2.2 映射(map)

map方法用于对Stream中的元素进行映射,将映射后的结果放入新的Stream中。例如:

Stream<Integer> mappedStream = stream.map(s -> s.length());

这个例子中,map方法对Stream中的字符串进行映射,将字符串的长度作为映射结果放入新的Stream中。

2.3 排序(sorted)

sorted方法用于对Stream中的元素进行排序。例如:

Stream<String> sortedStream = stream.sorted();

这个例子中,sorted方法对Stream中的元素进行排序。

2.4 截断(limit)

limit方法用于截断Stream中的元素,限制元素的个数。例如:

Stream<String> limitedStream = stream.limit(2);

这个例子中,limit方法限制Stream的元素个数为2。

2.5 跳过(skip)

skip方法用于跳过Stream中的元素,跳过指定数量的元素。例如:

Stream<String> skippedStream = stream.skip(1);

这个例子中,skip方法跳过Stream中的 元素,返回包含剩余元素的Stream。

3. Stream的终止操作

Stream的终止操作用于执行Stream中的操作,并返回结果。

3.1 forEach

forEach方法用于对Stream中的每个元素执行指定操作。例如:

stream.forEach(s -> System.out.println(s));

这个例子中,forEach方法对Stream中的每个元素打印输出。

3.2 count

count方法用于统计Stream中的元素的个数。例如:

long count = stream.count();

这个例子中,count方法返回Stream中元素的个数。

3.3 collect

collect方法用于将Stream中的元素转换为集合或其他数据结构。例如:

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

这个例子中,collect方法将Stream中的元素转换为List。

3.4 reduce

reduce方法用于对Stream中的元素进行归约操作。例如:

Optional<String> reduced =
  stream.reduce((s1, s2) -> s1 + "-" + s2);

这个例子中,reduce方法对Stream中的元素进行归约操作,将每个元素用"-"连接起来。

以上就是使用Stream API的一些基本方法。Stream API可以使数据处理更加简单和优雅,在Java函数中使用Stream API可以更加高效地处理数据。