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

Java Stream API中常用的函数及使用示例

发布时间:2023-06-27 00:46:01

Java Stream API是Java 8中引入的一种新的API,它提供了一种优雅并且高效的方式来处理集合数据。Stream API提供了很多原始类型和对象流,可以使用各种函数来对流进行操作。

常用的函数:

1. filter:用于筛选出符合条件的元素。

2. map:用于将一个流中的元素映射到另一个流中。

3. flatMap:用于将一个流中的元素映射成多个流,然后将这些流合并成一个流。

4. distinct:用于去除流中的重复元素。

5. sorted:用于对流中的元素进行排序。

6. limit:用于保留指定个数的元素。

7. skip:用于跳过指定个数的元素。

8. forEach:用于迭代流中的所有元素。

9. reduce:用于将流中的元素归约成一个元素,例如对所有元素求和、求最大值等。

10. collect:用于将流中的元素收集到一个集合中。

以下是使用示例:

1. filter函数:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream()
            .filter(x -> x%2 == 0)
            .collect(Collectors.toList());
System.out.println(result);
// [2, 4]

2. map函数:

List<String> list = Arrays.asList("hello", "world");
List<String> result = list.stream()
            .map(String::toUpperCase)
            .collect(Collectors.toList());
System.out.println(result);
// ["HELLO", "WORLD"]

3. flatMap函数:

List<List<Integer>> list = Arrays.asList(
            Arrays.asList(1, 2), 
            Arrays.asList(3, 4, 5), 
            Arrays.asList(6, 7, 8, 9)
        );
List<Integer> result = list.stream()
            .flatMap(Collection::stream)
            .collect(Collectors.toList());
System.out.println(result);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

4. distinct函数:

List<Integer> list = Arrays.asList(1, 1, 2, 2, 3, 3, 4, 5);
List<Integer> result = list.stream()
            .distinct()
            .collect(Collectors.toList());
System.out.println(result);
// [1, 2, 3, 4, 5]

5. sorted函数:

List<Integer> list = Arrays.asList(3, 1, 4, 2, 5);
List<Integer> result = list.stream()
            .sorted()
            .collect(Collectors.toList());
System.out.println(result);
// [1, 2, 3, 4, 5]

6. limit函数:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream()
            .limit(3)
            .collect(Collectors.toList());
System.out.println(result);
// [1, 2, 3]

7. skip函数:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream()
            .skip(3)
            .collect(Collectors.toList());
System.out.println(result);
// [4, 5]

8. forEach函数:

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

9. reduce函数:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int result = list.stream()
            .reduce(0, Integer::sum);
System.out.println(result);
// 15

10. collect函数:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream()
            .filter(x -> x%2 == 0)
            .collect(Collectors.toList());
System.out.println(result);
// [2, 4]

Java Stream API提供了很多函数,以上只是其中的十个常用函数。使用Stream API可以大大简化代码并提高效率,特别是在处理大数据量时,是非常有用的。