欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?8函數(shù)式接口之Consumer用法示例詳解

 更新時(shí)間:2023年07月09日 09:30:52   作者:今夜有點(diǎn)兒亮  
這篇文章主要為大家介紹了Java?8函數(shù)式接口之Consumer用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Java 8函數(shù)式接口Consumer

Consumer<T> 是 Java 8 中的一個(gè)預(yù)定義函數(shù)式接口,用于表示接受一個(gè)輸入?yún)?shù) T 并執(zhí)行某些操作但沒有返回值的操作。

Consumer<T> 接口中定義了一個(gè)抽象方法 void accept(T t),該方法接受一個(gè)參數(shù) t,表示要執(zhí)行的操作。你可以使用 accept() 方法來定義具體的操作邏輯。

使用 Consumer<T> 接口

示例代碼

import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
public class ConsumerExample {
    public static void main(String[] args) {
        // 定義一個(gè)字符串列表
        List<String> fruits = Arrays.asList("Apple", "Orange", "Banana", "Mango");
        // 使用 Consumer 接口實(shí)現(xiàn)遍歷輸出每個(gè)水果的操作
        Consumer<String> printFruit = fruit -> System.out.println(fruit);
        fruits.forEach(printFruit);
        // 可簡(jiǎn)化為以下形式
        fruits.forEach(System.out::println);
    }
}

打印結(jié)果:

Apple
Orange
Banana
Mango

在上面的示例中,我們首先創(chuàng)建了一個(gè)字符串列表 fruits,然后創(chuàng)建了一個(gè) Consumer<String> 對(duì)象 printFruit,通過 lambda 表達(dá)式實(shí)現(xiàn)了 accept() 方法的具體操作,即打印每個(gè)水果的名稱。

使用 forEach() 方法結(jié)合 Consumer 接口,可以簡(jiǎn)潔地遍歷列表并執(zhí)行指定的操作。

forEach() 方法源碼

default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

在 forEach 方法的實(shí)現(xiàn)中,首先檢查傳入的 action 是否為 null,如果為 null,則會(huì)拋出 NullPointerException。然后,它使用增強(qiáng)的 for 循環(huán)遍歷 this(即當(dāng)前 Iterable 對(duì)象),對(duì)每個(gè)元素執(zhí)行 action.accept(t),其中 t 是當(dāng)前元素。

以上就是Java 8函數(shù)式接口之Consumer用法示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Java 8函數(shù)式接口Consumer的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot 鉤子接口的實(shí)現(xiàn)代碼

    SpringBoot 鉤子接口的實(shí)現(xiàn)代碼

    本文主要介紹了SpringBoot 鉤子接口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis

    JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis

    這篇文章主要介紹了JavaEE Spring MyBatis是什么? 它和Hibernate的區(qū)別有哪些?如何配置MyBatis?本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java外部類與內(nèi)部類簡(jiǎn)介

    java外部類與內(nèi)部類簡(jiǎn)介

    這篇文章簡(jiǎn)單介紹了java外部類與內(nèi)部類,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • spring?cloud之eureka高可用集群和服務(wù)分區(qū)解析

    spring?cloud之eureka高可用集群和服務(wù)分區(qū)解析

    這篇文章主要介紹了spring?cloud之eureka高可用集群和服務(wù)分區(qū)解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java數(shù)組復(fù)制的四種方法效率對(duì)比

    java數(shù)組復(fù)制的四種方法效率對(duì)比

    這篇文章主要介紹了java數(shù)組復(fù)制的四種方法效率對(duì)比,文中有簡(jiǎn)單的代碼示例,以及效率的比較結(jié)果,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 輕松掌握J(rèn)ava代理模式

    輕松掌握J(rèn)ava代理模式

    這篇文章主要幫助大家輕松掌握J(rèn)ava代理模式,什么是靜態(tài)代理?感興趣的小伙伴們可以參考一下
    2016-09-09
  • 詳解Java SpringAOP切面類

    詳解Java SpringAOP切面類

    這篇文章主要為大家介紹了Java SpringAOP的切面類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Java可以寫android的應(yīng)用程序嗎

    Java可以寫android的應(yīng)用程序嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于Java可以寫android的應(yīng)用程序嗎的相關(guān)基礎(chǔ)文章,有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11
  • java實(shí)現(xiàn)圖的鄰接表存儲(chǔ)結(jié)構(gòu)的兩種方式及實(shí)例應(yīng)用詳解

    java實(shí)現(xiàn)圖的鄰接表存儲(chǔ)結(jié)構(gòu)的兩種方式及實(shí)例應(yīng)用詳解

    這篇文章主要介紹了java實(shí)現(xiàn)圖的鄰接表存儲(chǔ)結(jié)構(gòu)的兩種方式及實(shí)例應(yīng)用詳解,鄰接表構(gòu)建圖是必須需要一個(gè)Graph對(duì)象,也就是圖對(duì)象!該對(duì)象包含屬性有:頂點(diǎn)數(shù)、邊數(shù)以及圖的頂點(diǎn)集合,需要的朋友可以參考下
    2019-06-06
  • Spring Cloud Gateway 記錄請(qǐng)求應(yīng)答數(shù)據(jù)日志操作

    Spring Cloud Gateway 記錄請(qǐng)求應(yīng)答數(shù)據(jù)日志操作

    這篇文章主要介紹了Spring Cloud Gateway 記錄請(qǐng)求應(yīng)答數(shù)據(jù)日志操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評(píng)論