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

Java函数式编程中常用的函数操作

发布时间:2023-06-26 21:46:58

Java函数式编程中常用的函数操作有很多,本文将介绍一些常用的操作。

1. map函数

map函数是将一个函数应用于流中的每个元素,并返回包含结果的新流。例如,如果我们有一个字符串列表,我们可以将每个字符串转换为大写字母:

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

List<String> upperChars = list.stream()

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

                               .collect(Collectors.toList());

2. flatMap函数

flatMap函数是在将一个函数应用于流中的每个元素之后,将结果压缩到一个流中。例如,如果我们有一个字符串列表,我们可以使用flatMap函数将每个字符串以流的形式展开:

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

List<Integer> flatList = list.stream()

                             .flatMap(l -> l.stream())

                             .collect(Collectors.toList());

3. filter函数

filter函数是用于从流中过滤元素的函数。例如,如果我们有一个整数列表,我们可以使用filter函数选择所有偶数:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

List<Integer> even = list.stream()

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

                          .collect(Collectors.toList());

4. reduce函数

reduce函数是用于将流中的元素归纳为一个值的函数。例如,如果我们有一个整数列表,我们可以使用reduce函数将所有元素相加:

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

int sum = list.stream()

              .reduce(0, (a, b) -> a + b);

5. forEach函数

forEach函数是用于对流中的每个元素进行操作的函数。例如,如果我们有一个字符串列表,我们可以使用forEach函数将每个字符串打印出来:

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

list.stream()

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

6. sorted函数

sorted函数用于对流中的元素进行排序。例如,如果我们有一个整数列表,我们可以使用sorted函数对元素进行排序:

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

List<Integer> sortedList = list.stream()

                               .sorted()

                               .collect(Collectors.toList());

7. limit函数

limit函数用于从流中截取指定数量的元素。例如,如果我们有一个整数列表,我们可以使用limit函数截取前三个元素:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

List<Integer> limitedList = list.stream()

                                .limit(3)

                                .collect(Collectors.toList());

8. distinct函数

distinct函数用于从流中去除重复的元素。例如,如果我们有一个整数列表,我们可以使用distinct函数去除重复的元素:

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

List<Integer> distinctList = list.stream()

                                 .distinct()

                                 .collect(Collectors.toList());

9. collect函数

collect函数用于将流中的元素收集到一个容器中。例如,如果我们有一个整数列表,我们可以使用collect函数将元素收集到一个集合中:

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

Set<Integer> set = list.stream()

                        .collect(Collectors.toSet());

10. findFirst函数

findFirst函数用于从流中获取第一个元素。例如,如果我们有一个整数列表,我们可以使用findFirst函数获取第一个元素:

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

Optional<Integer> first = list.stream()

                              .findFirst();

以上是Java函数式编程中常用的一些函数操作,它们可以帮助我们更方便地处理流式数据。