常用函式式介面

2021-10-10 17:02:39 字數 3030 閱讀 3773

/*

常用的函式式介面

supplier介面僅包含乙個無參的方法:t get(),用來獲取乙個泛型引數指定型別的物件資料

supplier介面被稱為生產型介面,指定介面的泛型是什麼型別,那麼介面中的get方法就會生產什麼型別的資料

public class demo01supplier 

public static void main(string args)

}

使用supplier介面作為方法引數型別,通過lambda表示式求出int陣列的最大值

介面的泛型使用int類

*/

public class demo02test 

public static void main(string args) ;

//呼叫getmax方法,引數是乙個函式式介面,可以傳遞lambda表示式

int maxvalue = getmax(()->

}return max;

});system.out.println("陣列最大值是:"+maxvalue);

}}

/*

consumer介面 剛好和supplier介面相反

不是生產資料,而是消費乙個資料,資料型別由泛型決定

consumer介面是乙個消費性介面,泛型執行什麼型別,consumer的accept方法消費什麼型別資料

public class demo01consumer 

public static void main(string args) );

}}

/*

consumer介面的預設方法 andthen

作用:需要兩個consumer介面,可以把兩個consumer介面組合在一起,在對資料進行消費

例如:consumer con1

consumercon2

string s = 「hello」

con1.accept(s)

con1.andthen(con2).accept(s)誰寫前面誰先消費

*/

public class demo02andthen 

public static void main(string args) ,

(t)->);

}}

public class test ;

printinfo(arr,(m)->,

(m)->);

}public static void printinfo(string arr, consumercon1,consumercon2)

}}

/*

predicate介面

作用:對某種資料型別的資料進行判斷,結果返回乙個boolean值

predicate介面中包含乙個抽象方法:

boolean test(t t)用來對指定型別資料進行判斷的方法

結果:符合條件 返回true

不符合條件:返回false

*/

public class demo01predicate 

public static void main(string args) );*/

//使用lambda表示式優化

boolean b = checkstring(s, str ->str.length()>5);

system.out.println(b);

}}

/*

邏輯表示式:可以連線多個判斷的條件

&& 與運算子:有false則false

|| 或運算子:有true則true

!:非運算子:非真則假,非假則真

需求:判斷乙個字串,有兩個判斷的條件

1、判斷字串的長度是否大於6

2、判斷字串是否包含a

同時滿足 &&

predicate介面只有乙個方法and,用於連線兩個判斷條件

*/

public class demo02predicate_and 

public static void main(string args) ,

(string str) -> );

system.out.println(b);

}}

/*

需求:判斷乙個字串,有兩個判斷的條件

1、判斷字串的長度是否大於6

2、判斷字串是否包含a

or 只要乙個成立即可

*/

public class demo03predicate_or 

public static void main(string args) ,

(string str) -> );

system.out.println(b);

}}

/*

需求:判斷乙個字串長度是否大於5

如果大於5則返回false

不大於5則返回true

negate表示取反的意思

public class demo04predicate_negate 

public static void main(string args) );

system.out.println(b);

}}

/*

練習:集合資訊篩選

篩選集合中

1、女生

2、名字是四個字

分析:1、兩個判斷條件

2、必須同時滿足兩個條件

and*/

public class demotest 

}return list;

}public static void main(string args) ;

arraylistlist =filter(arr,(string s)->,

(string name)->);

for (string s : list)

}}

常用函式式介面之Predicate

public class predicatedemo01 判斷給定的字串是否滿足要求 private static boolean checkstring string s,predicatepre public class predicatedemo02 同乙個字串給出兩個不同的判斷條件,最後把這...

Java8 常用函式式介面

本文主要參考 在此感謝 接收乙個引數t,沒有返回值 原始碼 functionalinte ce public inte ce consumer 示例 講述乙個學生在學習過程中,需要買學習用品。買什麼東西是具體的實現,我們在呼叫study 方法的時候再指定。test public void testc...

函式式介面

在oop中方法中的引數傳遞的資料,而函式式介面傳遞的是一種行為。如果乙個介面只有乙個抽象方法,那麼這個介面就是函式式介面 如果在某個介面上宣告了 functionalinte ce 註解,那麼編譯器會按照函式式介面的定義來約束該介面。public class mydemo public static...