登录
首页 >  文章 >  java教程

Java 函数式接口的常见实现有哪些?

时间:2024-09-27 15:51:07 451浏览 收藏

最近发现不少小伙伴都对文章很感兴趣,所以今天继续给大家介绍文章相关的知识,本文《Java 函数式接口的常见实现有哪些?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

Java 函数式接口提供多种通用实现,包括:1. Predicate 用于布尔求值;2. Consumer 用于接受输入并执行副作用;3. Function 用于将输入映射到输出;4. Supplier 用于提供值;5. BiPredicate 用于对两个输入值进行布尔求值。这些实现可以简化代码、提高可读性,并将其组织成可重用的块。

Java 函数式接口的常见实现有哪些?

Java 函数式接口的常见实现

函数式接口是仅包含一个抽象方法的接口。Java 为函数式接口提供了多种通用实现,这些实现可用于简化代码并提高可读性。

1. Predicate

Predicate 接口用于对输入值进行布尔求值。

import java.util.function.Predicate;

public class Example {
    public static void main(String[] args) {
        // 检查数字是否大于 10
        Predicate<Integer> isGreaterThan10 = n -> n > 10;
        System.out.println(isGreaterThan10.test(12)); // true
    }
}

2. Consumer

Consumer 接口用于接受输入并可能执行副作用(例如打印)。

import java.util.function.Consumer;

public class Example {
    public static void main(String[] args) {
        // 打印数字
        Consumer<Integer> printNumber = n -> System.out.println(n);
        printNumber.accept(12); // 输出 12
    }
}

3. Function

Function 接口用于将一个输入映射到一个输出。

import java.util.function.Function;

public class Example {
    public static void main(String[] args) {
        // 将数字加 1
        Function<Integer, Integer> addOne = n -> n + 1;
        System.out.println(addOne.apply(12)); // 13
    }
}

4. Supplier

Supplier 接口用于提供一个值,该值不需要任何输入。

import java.util.function.Supplier;

public class Example {
    public static void main(String[] args) {
        // 提供当前时间
        Supplier<String> getCurrentTime = () -> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        System.out.println(getCurrentTime.get()); // 输出当前时间
    }
}

5. BiPredicate

BiPredicate 接口用于对两个输入值进行布尔求值。

import java.util.function.BiPredicate;

public class Example {
    public static void main(String[] args) {
        // 检查两个数字是否都大于 10
        BiPredicate<Integer, Integer> bothGreaterThan10 = (n, m) -> n > 10 && m > 10;
        System.out.println(bothGreaterThan10.test(12, 15)); // true
    }
}

实战案例

import java.util.List;
import java.util.stream.Collectors;

public class Example {
    public static void main(String[] args) {
        // 获取大于 10 的数字列表
        List<Integer> numbers = List.of(5, 8, 12, 17, 20);
        List<Integer> filteredNumbers = numbers.stream()
                .filter(n -> n > 10)
                .collect(Collectors.toList());

        System.out.println(filteredNumbers); // 输出 [12, 17, 20]
    }
}

通过使用函数式接口,我们可以将代码逻辑组织成可重用的块,从而提高代码可读性并简化维护。

文中关于java,函数式接口的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Java 函数式接口的常见实现有哪些?》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>