当前位置: 代码网 > it编程>编程语言>Java > java中Supplier、Function、BiFunction的区别及说明

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

2026年04月30日 Java 我要评论
supplier、function、bifunction区别在 java 中,supplier、function、bifunction 是 java.util.function 包下的三个核心函数式接

supplier、function、bifunction区别

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

1、supplier

  • 功能:不接受参数,仅返回一个值(供应一个结果)。
  • 抽象方法:t get()
  • 适用场景:延迟计算、生成数据、工厂模式等。

示例:

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>

  • 功能:接受一个参数(类型 t),返回一个结果(类型 r)。
  • 抽象方法:r apply(t t)
  • 适用场景:数据转换、映射操作等。

示例:

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>

  • 功能:接受两个参数(类型 t 和 u),返回一个结果(类型 r)。
  • 抽象方法:r apply(t t, u u)
  • 适用场景:需要处理两个输入的计算,如合并数据、比较等。

示例:

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)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com