最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中Supplier、Function、BiFunction的區(qū)別及說(shuō)明

 更新時(shí)間:2026年04月30日 09:05:40   作者:布卡布卡昵  
Supplier、Function、BiFunction是Java函數(shù)式編程中常用的三個(gè)接口,它們分別用于無(wú)參數(shù)返回值、單參數(shù)返回值和雙參數(shù)返回值的抽象函數(shù)定義

Supplier、Function、BiFunction區(qū)別

在 Java 中,Supplier、Function、BiFunction 是 java.util.function 包下的三個(gè)核心函數(shù)式接口,它們的主要區(qū)別在于參數(shù)數(shù)量和返回值類型

1、Supplier

  • 功能:不接受參數(shù),僅返回一個(gè)值(供應(yīng)一個(gè)結(jié)果)。
  • 抽象方法:T get()
  • 適用場(chǎng)景:延遲計(jì)算、生成數(shù)據(jù)、工廠模式等。

示例:

import java.util.function.Supplier;

public class SupplierExample {
    public static void main(String[] args) {
        // 供應(yīng)一個(gè)隨機(jī)數(shù)
        Supplier<Integer> randomSupplier = () -> (int) (Math.random() * 100);
        System.out.println(randomSupplier.get()); // 每次調(diào)用可能返回不同的值
    }
}

2、Function<T, R>

  • 功能:接受一個(gè)參數(shù)(類型 T),返回一個(gè)結(jié)果(類型 R)。
  • 抽象方法:R apply(T t)
  • 適用場(chǎng)景:數(shù)據(jù)轉(zhuǎn)換、映射操作等。

示例:

import java.util.function.Function;

public class FunctionExample {
    public static void main(String[] args) {
        // 將字符串轉(zhuǎn)換為其長(zhǎng)度
        Function<String, Integer> lengthFunction = s -> s.length();
        System.out.println(lengthFunction.apply("Hello")); // 輸出:5
    }
}

3、BiFunction<T, U, R>

  • 功能:接受兩個(gè)參數(shù)(類型 T 和 U),返回一個(gè)結(jié)果(類型 R)。
  • 抽象方法:R apply(T t, U u)
  • 適用場(chǎng)景:需要處理兩個(gè)輸入的計(jì)算,如合并數(shù)據(jù)、比較等。

示例:

import java.util.function.BiFunction;

public class BiFunctionExample {
    public static void main(String[] args) {
        // 計(jì)算兩個(gè)整數(shù)的和
        BiFunction<Integer, Integer, Integer> sumFunction = (a, b) -> a + b;
        System.out.println(sumFunction.apply(3, 5)); // 輸出:8
    }
}

核心區(qū)別總結(jié)

接口參數(shù)數(shù)量返回值抽象方法簽名
Supplier0TT get()
Function<T,R>1 (T)RR apply(T t)
BiFunction<T,U,R>2 (T, U)RR apply(T t, U u)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java8的default方法詳細(xì)介紹

    Java8的default方法詳細(xì)介紹

    這篇文章主要介紹了Java8的default方法,詳細(xì)介紹了什么是default方法,在多繼承時(shí)的處理等,需要的朋友可以參考下
    2014-04-04
  • jacksonJson序列化Map時(shí)指定Long序列化為String的實(shí)踐

    jacksonJson序列化Map時(shí)指定Long序列化為String的實(shí)踐

    文章介紹了在前端接收Long類型數(shù)據(jù)時(shí)可能產(chǎn)生的經(jīng)度問(wèn)題,提出了在返回?cái)?shù)據(jù)時(shí)將Long類型轉(zhuǎn)換為String類型的方法,作者使用Jackson庫(kù)并通過(guò)自定義SimpleModule來(lái)實(shí)現(xiàn)這一轉(zhuǎn)換,此外,作者還討論了在復(fù)雜情況下需要自定義序列化方法的場(chǎng)景,并分享了解決方案
    2026-01-01
  • Java SpringMVC自學(xué)自講

    Java SpringMVC自學(xué)自講

    本篇文章主要介紹了java SpringMVC——如何獲取請(qǐng)求參數(shù)詳解,詳細(xì)的介紹了每種參數(shù)注解的用法及其實(shí)例。感興趣的小伙伴們可以參考一下
    2021-09-09
  • 基于java ssm springboot+mybatis酒莊內(nèi)部管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

    基于java ssm springboot+mybatis酒莊內(nèi)部管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了java ssm springboot+mybatis實(shí)現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java如何獲取map中value的最大值

    java如何獲取map中value的最大值

    這篇文章主要介紹了java如何獲取map中value的最大值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Java編程中使用XFire框架調(diào)用WebService程序接口

    Java編程中使用XFire框架調(diào)用WebService程序接口

    這篇文章主要介紹了Java編程中使用XFire調(diào)用WebService程序接口的方法,WebService是一種跨編程語(yǔ)言和跨操作系統(tǒng)平臺(tái)的遠(yuǎn)程調(diào)用技術(shù),需要的朋友可以參考下
    2015-12-12
  • SpringMVC請(qǐng)求數(shù)據(jù)詳解講解

    SpringMVC請(qǐng)求數(shù)據(jù)詳解講解

    Spring MVC 是 Spring 提供的一個(gè)基于 MVC 設(shè)計(jì)模式的輕量級(jí) Web 開發(fā)框架,本質(zhì)上相當(dāng)于 Servlet,Spring MVC 角色劃分清晰,分工明細(xì),本章來(lái)講解SpringMVC如何請(qǐng)求數(shù)據(jù)
    2022-07-07
  • Java實(shí)現(xiàn)LRU緩存算法的參考示例

    Java實(shí)現(xiàn)LRU緩存算法的參考示例

    這篇文章主要介紹了JAVA實(shí)現(xiàn)LRU緩存算法的參考示例,幫助大家根據(jù)需求實(shí)現(xiàn)算法,對(duì)大家的學(xué)習(xí)或工作有一定的參考價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Java Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成及Excel文件的導(dǎo)入和導(dǎo)出

    Java Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成及Excel文件的導(dǎo)入和導(dǎo)出

    Hutool是一個(gè)小而全的Java工具類庫(kù),通過(guò)靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,本文主要介紹了使用Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成和excel文件的導(dǎo)入、導(dǎo)出,需要的朋友可參考一下
    2021-11-11
  • SpringBoot+Querydsl?框架實(shí)現(xiàn)復(fù)雜查詢解析

    SpringBoot+Querydsl?框架實(shí)現(xiàn)復(fù)雜查詢解析

    本篇主要將介紹的是利用spring query dsl框架實(shí)現(xiàn)的服務(wù)端查詢解析和實(shí)現(xiàn)介紹,對(duì)SpringBoot?Querydsl?查詢操作感興趣的朋友一起看看吧
    2022-05-05

最新評(píng)論

绍兴市| 应用必备| 娄烦县| 广河县| 夏河县| 青州市| 新泰市| 全州县| 湖州市| 晋中市| 天门市| 合山市| 滦平县| 自治县| 宁河县| 紫云| 赤峰市| 吉木萨尔县| 寻乌县| 通化市| 永城市| 怀远县| 左权县| 泰安市| 含山县| 东城区| 湾仔区| 洛扎县| 临湘市| 宽甸| 灵宝市| 乌什县| 上饶市| 沙田区| 霍林郭勒市| 西充县| 慈溪市| 江门市| 拉萨市| 乐山市| 明溪县|