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

使用Java中的Stream函数来处理集合数据

发布时间:2023-06-25 05:33:01

在Java中,Stream函数是一种非常方便的对集合数据处理的方式。使用Stream函数可以让我们更容易地对集合中的元素进行过滤、排序、映射等操作。下面将介绍Stream函数的使用方法以及一些常用的操作。

1. 开启Stream函数

在Java中,可以通过Collection接口提供的stream()函数或者parallelStream()函数来获得一个Stream对象。这两个函数的区别在于前者是顺序流,后者是并行流。一般来说,并行流对于大型数据集合的处理效果更好,但是对于小型数据集合的处理则可能会比顺序流慢。

例如,假设有一个整数列表,我们可以通过下面的代码获取一个顺序流:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();

2. 过滤操作

Stream函数提供了许多用于过滤元素的函数。其中最常用的是filter()函数,它的作用是保留符合条件的元素。

例如,假设我们有一个字符串列表,要求保留长度大于等于3的元素,我们可以通过下面的代码实现:

List<String> list = Arrays.asList("a", "ab", "abc", "abcd");
Stream<String> stream = list.stream();
stream.filter(s -> s.length() >= 3).forEach(System.out::println);

运行结果为:

abc
abcd

3. 映射操作

Stream函数提供了许多用于映射元素的函数。其中最常用的是map()函数,它的作用是将每个元素映射为另一个元素。

例如,假设我们有一个整数列表,要求将每个元素都平方,并输出结果,我们可以通过下面的代码实现:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.map(i -> i * i).forEach(System.out::println);

运行结果为:

1
4
9
16
25

4. 排序操作

Stream函数提供了许多用于排序元素的函数。其中最常用的是sorted()函数,它的作用是按照指定的条件进行排序。

例如,假设我们有一个字符串列表,要求按照字典序排序,并输出结果,我们可以通过下面的代码实现:

List<String> list = Arrays.asList("abc", "def", "ghi", "jkl", "mno");
Stream<String> stream = list.stream();
stream.sorted().forEach(System.out::println);

运行结果为:

abc
def
ghi
jkl
mno

5. 去重操作

Stream函数提供了许多用于去重元素的函数。其中最常用的是distinct()函数,它的作用是去除重复的元素。

例如,假设我们有一个整数列表,要求去除重复的元素,并输出结果,我们可以通过下面的代码实现:

List<Integer> list = Arrays.asList(1, 2, 2, 3, 3, 3, 4, 5, 5);
Stream<Integer> stream = list.stream();
stream.distinct().forEach(System.out::println);

运行结果为:

1
2
3
4
5

6. 统计操作

Stream函数提供了许多用于统计元素的函数。其中最常用的是count()函数,它的作用是返回元素的个数。

例如,假设我们有一个字符串列表,要求统计其中长度大于等于3的元素的个数,并输出结果,我们可以通过下面的代码实现:

List<String> list = Arrays.asList("a", "ab", "abc", "abcd");
Stream<String> stream = list.stream();
long count = stream.filter(s -> s.length() >= 3).count();
System.out.println(count);

运行结果为:

2

以上就是Java中使用Stream函数来处理集合数据的常见操作。Stream函数的使用可以让我们更好地处理集合中的数据,提高代码的可读性和可维护性。