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

Java函数式编程:10个常用的lambda函数

发布时间:2023-08-20 09:09:37

Java函数式编程是指在Java编程中使用函数式编程的思想和技术。Java 8引入了lambda表达式和函数式接口,使得在Java中编写函数式代码更加方便和简洁。下面是10个常用的lambda函数用法:

1. forEach:使用lambda表达式遍历集合中的元素,可以替代传统的for循环。

例如:

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

numbers.forEach(n -> System.out.println(n));

2. filter:使用lambda表达式过滤集合中满足条件的元素,返回一个新的集合。

例如:

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

List<Integer> filteredNumbers = numbers.stream()

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

                                      .collect(Collectors.toList());

3. map:使用lambda表达式对集合中的每个元素进行操作,返回一个新的集合。

例如:

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

List<Integer> squaredNumbers = numbers.stream()

                                      .map(n -> n * n)

                                      .collect(Collectors.toList());

4. reduce:使用lambda表达式将集合中的元素组合成一个值。

例如:

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

Integer sum = numbers.stream()

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

5. sorted:使用lambda表达式对集合中的元素进行排序。

例如:

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

List<Integer> sortedNumbers = numbers.stream()

                                     .sorted((a, b) -> a.compareTo(b))

                                     .collect(Collectors.toList());

6. distinct:使用lambda表达式对集合中的元素进行去重。

例如:

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

List<Integer> distinctNumbers = numbers.stream()

                                       .distinct()

                                       .collect(Collectors.toList());

7. anyMatch:使用lambda表达式判断集合中是否有满足条件的元素。

例如:

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

boolean hasEvenNumber = numbers.stream()

                               .anyMatch(n -> n % 2 == 0);

8. noneMatch:使用lambda表达式判断集合中是否没有满足条件的元素。

例如:

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

boolean hasNegativeNumber = numbers.stream()

                                   .noneMatch(n -> n < 0);

9. max和min:使用lambda表达式找出集合中的最大值和最小值。

例如:

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

Optional<Integer> maxNumber = numbers.stream()

                                     .max((a, b) -> a.compareTo(b));

10. count:使用lambda表达式统计集合中满足条件的元素个数。

例如:

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

long evenNumbersCount = numbers.stream()

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

                               .count();

以上是10个常用的lambda函数的用法,通过lambda表达式和函数式接口,可以简化代码的编写,使得Java的函数式编程更加灵活和高效。使用这些函数,可以方便地对集合进行操作和处理。从而提升开发效率和代码可读性。