溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Java常用函數(shù)式接口有哪些

發(fā)布時(shí)間:2021-06-29 14:36:24 來(lái)源:億速云 閱讀:305 作者:chen 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“Java常用函數(shù)式接口有哪些”,在日常操作中,相信很多人在Java常用函數(shù)式接口有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java常用函數(shù)式接口有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

四大函數(shù)式接口

新時(shí)代的程序員:lambda 表達(dá)式,鏈?zhǔn)骄幊?,函?shù)式接口,Stream 流式計(jì)算

函數(shù)式接口: 只有一個(gè)方法的接口

@FunctionalInterface
public interface Runnable {

    public abstract void run();
}
//超級(jí)多FunctionalInterface
//簡(jiǎn)化編程模型,在新版本的框架底層大量應(yīng)用!
//foreach(消費(fèi)者類(lèi)型的函數(shù)式接口)

Java常用函數(shù)式接口有哪些

代碼測(cè)試:

Java常用函數(shù)式接口有哪些

Function 函數(shù)式接口

 package com.function;


import java.util.function.Function;

/**
 * Function 函數(shù)型接口,有一個(gè)輸入?yún)?shù),有一個(gè)輸出
 * 只要是函數(shù)型接口 可以 用lambda 表達(dá)式簡(jiǎn)化
 */
public class Demo01 {


    public static void main(String[] args) {
        //工具類(lèi):輸出輸入的值
//      Function function =  new Function<String,String>() {
//            @Override
//            public String apply(String o) {
//                return o;
//            }
//        };
        //System.out.println(function .apply("asd"));
    Function<String,String> function= (str)->{return str;};
    System.out.println(function.apply("asd"));
    }
}

輸出結(jié)果:asd

斷定型接口:有一個(gè)輸入?yún)?shù),返回值只能是布爾值!

Java常用函數(shù)式接口有哪些

package com.function;


import java.util.function.Predicate;

/**
 * 斷定型接口,有一個(gè)輸入?yún)?shù),返回值只能是布爾值!
 */
public class Demo02 {


    public static void main(String[] args) {
        //判斷字符串是否為空
//        Predicate<String> predicate = new Predicate<String>() {
//            @Override
//            public boolean test(String str) {
//                return str.isEmpty();
//            }
//        };
        Predicate<String> predicate =(str)->{
            return str.isEmpty();
        };
        System.out.println(predicate.test("asd"));

    }
}

輸出結(jié)果:false

Consumer 消費(fèi)型接口

Java常用函數(shù)式接口有哪些

package com.function;

import java.util.function.Consumer;

/**
 * Consumer 消費(fèi)型接口: 只有輸入,沒(méi)有返回值
 */
public class Demo03 {


    public static void main(String[] args) {
//        Consumer<String> consumer = new Consumer<String>() {
//            @Override
//            public void accept(String str) {
//                System.out.println(str);
//            }
//        };
        //函數(shù)式接口
        Consumer<String> consumer = (str)->{
            System.out.println(str);
        };
        consumer.accept("ssssssssssssssss");

    }
}

輸出結(jié)果:sssssssssssss

list.foreach 其實(shí)也是用的Consumer,自己寫(xiě)的例子:

//有入?yún)](méi)有返回值
        list.forEach(x->{
            System.out.println(x);
        });

有入?yún)ⅲ瑳](méi)有返回值!

Supplier 供給型接口

Java常用函數(shù)式接口有哪些

package com.function;

import java.util.function.Supplier;

/**
 * Supplier 供給型接口,沒(méi)有參數(shù),只有返回值
 */
public class Demo04 {


    public static void main(String[] args) {
//        Supplier<String> supplier = new Supplier<String>() {
//            @Override
//            public String get() {
//                System.out.println("Get");
//                return "1024";
//            }
//        };
        Supplier<String> supplier = () ->{
          return "1024";
        };
        System.out.println(supplier.get());
    }
}

輸出結(jié)果:1024

總結(jié)

函數(shù)型接口 :有入?yún)ⅲ址祷刂禂喽ㄐ徒涌? 有入?yún)?,返回布爾值消費(fèi)型接口: 有入?yún)?,沒(méi)有返回值供給型接口: 無(wú)入?yún)?,有返回?/p>

到此,關(guān)于“Java常用函數(shù)式接口有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI