java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java中Supplier、Function、BiFunction区别

java中Supplier、Function、BiFunction的区别及说明

作者:布卡布卡昵

Supplier、Function、BiFunction是Java函数式编程中常用的三个接口,它们分别用于无参数返回值、单参数返回值和双参数返回值的抽象函数定义

Supplier、Function、BiFunction区别

在 Java 中,Supplier、Function、BiFunction 是 java.util.function 包下的三个核心函数式接口,它们的主要区别在于参数数量和返回值类型

1、Supplier

示例:

import java.util.function.Supplier;

public class SupplierExample {
    public static void main(String[] args) {
        // 供应一个随机数
        Supplier<Integer> randomSupplier = () -> (int) (Math.random() * 100);
        System.out.println(randomSupplier.get()); // 每次调用可能返回不同的值
    }
}

2、Function<T, R>

示例:

import java.util.function.Function;

public class FunctionExample {
    public static void main(String[] args) {
        // 将字符串转换为其长度
        Function<String, Integer> lengthFunction = s -> s.length();
        System.out.println(lengthFunction.apply("Hello")); // 输出:5
    }
}

3、BiFunction<T, U, R>

示例:

import java.util.function.BiFunction;

public class BiFunctionExample {
    public static void main(String[] args) {
        // 计算两个整数的和
        BiFunction<Integer, Integer, Integer> sumFunction = (a, b) -> a + b;
        System.out.println(sumFunction.apply(3, 5)); // 输出:8
    }
}

核心区别总结

接口参数数量返回值抽象方法签名
Supplier0TT get()
Function<T,R>1 (T)RR apply(T t)
BiFunction<T,U,R>2 (T, U)RR apply(T t, U u)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文