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

Java8中常見函數(shù)式接口的使用示例詳解

 更新時間:2023年12月27日 08:11:24   作者:一只愛擼貓的程序猿  
在 Java 8 中,函數(shù)式接口是一個關(guān)鍵的特性,它們允許將方法作為參數(shù)傳遞或返回類型,本文為大家整理了一些常見的函數(shù)式接口的使用,希望對大家有所幫助

在 Java 8 中,函數(shù)式接口是一個關(guān)鍵的特性,它們允許將方法作為參數(shù)傳遞或返回類型,從而提高代碼的模塊性和靈活性。下面是一些常見的函數(shù)式接口的實例代碼。

1. Consumer<T>

Consumer<T> 接口代表一個接受單個輸入?yún)?shù)且不返回結(jié)果的操作。它常用于對對象執(zhí)行操作。

import java.util.function.Consumer;

Consumer<String> printConsumer = System.out::println;
printConsumer.accept("Hello, World!");

2. Supplier<T>

Supplier<T> 接口提供一個沒有參數(shù)的方法并返回一個泛型類型的結(jié)果。它通常用于延遲計算或構(gòu)造。

import java.util.function.Supplier;

Supplier<Double> randomSupplier = Math::random;
System.out.println(randomSupplier.get());

3. Function<T,R>

Function<T,R> 接口表示接受一個參數(shù)并產(chǎn)生結(jié)果的函數(shù)。這是一個非常通用的接口。

import java.util.function.Function;

Function<String, Integer> lengthFunction = String::length;
System.out.println(lengthFunction.apply("Hello"));

4. Predicate<T>

Predicate<T> 接口表示一個參數(shù)的布爾值函數(shù)。

import java.util.function.Predicate;

Predicate<String> nonEmptyStringPredicate = (String s) -> !s.isEmpty();
System.out.println(nonEmptyStringPredicate.test("Test"));

5.使用 Function<T,R> 進行函數(shù)組合

Function<Integer, Integer> times2 = e -> e * 2;
Function<Integer, Integer> squared = e -> e * e;

Function<Integer, Integer> times2AndSquare = times2.andThen(squared);
System.out.println(times2AndSquare.apply(4)); // 輸出 64

6.使用 Predicate<T> 進行邏輯組合

Predicate<Integer> isEven = x -> x % 2 == 0;
Predicate<Integer> isPositive = x -> x > 0;

Predicate<Integer> isEvenAndPositive = isEven.and(isPositive);
System.out.println(isEvenAndPositive.test(4)); // true

7. UnaryOperator<T>

UnaryOperator<T> 是 Function<T, T> 的一個特例,用于操作單個操作數(shù),其類型與結(jié)果類型相同。

import java.util.function.UnaryOperator;

UnaryOperator<Integer> square = x -> x * x;
System.out.println(square.apply(5)); // 輸出 25

8. BiFunction<T, U, R>

BiFunction<T, U, R> 接口表示接受兩個參數(shù)并產(chǎn)生結(jié)果的函數(shù)。

import java.util.function.BiFunction;

BiFunction<Integer, Integer, Integer> add = (a, b) -> a + b;
System.out.println(add.apply(2, 3)); // 輸出 5

9. BinaryOperator<T>

BinaryOperator<T> 是 BiFunction<T, T, T> 的一個特例,用于操作兩個相同類型的操作數(shù)并返回相同類型的結(jié)果。

import java.util.function.BinaryOperator;

BinaryOperator<Integer> multiply = (a, b) -> a * b;
System.out.println(multiply.apply(3, 4)); // 輸出 12

10.使用 Function<T, R> 創(chuàng)建工廠方法

import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;

class ComplexClass {
    private int value;

    ComplexClass(int value) {
        this.value = value;
    }

    // Getter and other methods...
}

Function<Integer, ComplexClass> complexClassFactory = ComplexClass::new;
ComplexClass complexInstance = complexClassFactory.apply(10);

11.UnaryOperator<T> 創(chuàng)建連續(xù)操作

UnaryOperator<String> toUpperCase = String::toUpperCase;
UnaryOperator<String> addExclamation = str -> str + "!";

UnaryOperator<String> shout = toUpperCase.andThen(addExclamation);
System.out.println(shout.apply("hello")); // 輸出 "HELLO!"

12. BiConsumer<T, U>

BiConsumer<T, U> 接口表示接受兩個輸入?yún)?shù)的操作,并且不返回任何結(jié)果。

import java.util.function.BiConsumer;

BiConsumer<String, String> concatAndPrint = (a, b) -> System.out.println(a + b);
concatAndPrint.accept("Hello, ", "World!"); // 輸出 Hello, World!

13. BiPredicate<T, U>

BiPredicate<T, U> 接口表示接受兩個參數(shù)的布爾值函數(shù)。

import java.util.function.BiPredicate;

BiPredicate<Integer, String> validate = (i, s) -> i > 0 && s.startsWith("A");
System.out.println(validate.test(1, "Apple")); // 輸出 true

14. ToIntFunction<T>

ToIntFunction<T> 接口表示將一個對象轉(zhuǎn)換為一個原始 int 類型的函數(shù)。

import java.util.function.ToIntFunction;

ToIntFunction<String> length = String::length;
System.out.println(length.applyAsInt("Hello")); // 輸出 5

通過這些特性,Java 8 的函數(shù)式接口極大地提升了代碼的簡潔性和可讀性,同時也促進了函數(shù)式編程范式在 Java 社區(qū)中的普及。

到此這篇關(guān)于Java8中常見函數(shù)式接口的使用示例詳解的文章就介紹到這了,更多相關(guān)Java8函數(shù)式接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何解決zookeeper集群重啟Error contacting service.It is probably not running問題

    如何解決zookeeper集群重啟Error contacting service.It 

    本文詳細(xì)介紹了Zookeeper集群啟動異常的排查步驟,包括網(wǎng)絡(luò)問題、防火墻配置、Java環(huán)境、端口占用、網(wǎng)卡問題、網(wǎng)絡(luò)問題以及節(jié)點配置信息的檢查,通過逐一排查和解決這些問題,可以有效地啟動Zookeeper集群
    2024-12-12
  • SpringCloud2020 bootstrap 配置文件失效的解決方法

    SpringCloud2020 bootstrap 配置文件失效的解決方法

    這篇文章主要介紹了SpringCloud2020 bootstrap 配置文件失效的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java線程(Thread)四種停止方式代碼實例

    Java線程(Thread)四種停止方式代碼實例

    這篇文章主要介紹了Java線程(Thread)四種停止方式代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Maven項目中pom.xml父子模塊配置小結(jié)

    Maven項目中pom.xml父子模塊配置小結(jié)

    Maven父子模塊結(jié)構(gòu)通過pom.xml實現(xiàn)配置復(fù)用、版本統(tǒng)一和批量構(gòu)建,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • 簡單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實例

    簡單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實例

    這篇文章主要介紹了簡單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2010-05-05
  • 基于SpringBoot+Redis的Session共享與單點登錄詳解

    基于SpringBoot+Redis的Session共享與單點登錄詳解

    這篇文章主要介紹了基于SpringBoot+Redis的Session共享與單點登錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Java操作redis實現(xiàn)增刪查改功能的方法示例

    Java操作redis實現(xiàn)增刪查改功能的方法示例

    這篇文章主要介紹了Java操作redis實現(xiàn)增刪查改功能的方法,涉及java操作redis數(shù)據(jù)庫的連接、設(shè)置、增刪改查、釋放資源等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • mybatis日志打印的兩款I(lǐng)DEA插件推薦

    mybatis日志打印的兩款I(lǐng)DEA插件推薦

    這篇文章主要給大家推薦介紹了關(guān)于mybatis日志打印的兩款I(lǐng)DEA插件,文中通過圖文以及實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mybatis具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-04-04
  • 淺談Spring中@Import注解的作用和使用

    淺談Spring中@Import注解的作用和使用

    這篇文章主要介紹了淺談Spring中@Import注解的作用和使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • spring cloud gateway如何獲取請求的真實地址

    spring cloud gateway如何獲取請求的真實地址

    這篇文章主要介紹了spring cloud gateway如何獲取請求的真實地址問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論

宿州市| 曲阜市| 新建县| 凉城县| 怀宁县| 讷河市| 巨鹿县| 邓州市| 福海县| 筠连县| 且末县| 玉环县| 肃宁县| 信丰县| 舟山市| 读书| 斗六市| 潼关县| 棋牌| 满洲里市| 巴彦淖尔市| 名山县| 长沙市| 新昌县| 石楼县| 百色市| 金山区| 贡山| 蒙山县| 和龙市| 尚义县| 涪陵区| 抚松县| 龙门县| 周口市| 大同市| 遂宁市| 安平县| 汝阳县| 海伦市| 宁远县|