日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 内置函数_java8 四大内置核心函数式接口

發布時間:2023/12/9 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 内置函数_java8 四大内置核心函数式接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

其他補充接口:

一、Consumer:消費型接口(void accept(T t))

來看一個簡單得例子:

1 /**

2 * 消費型接口Consumer

3 */

4 @Test

5 public void test1 () {

6 consumo(500, (x) -> System.out.println(x));

7 }

8

9 public void consumo (double money, Consumer c) {

10 c.accept(money);

11 }

以上為消費型接口,有參數,無返回值類型的接口。

二、Supplier:供給型接口(T get())

來看一個簡單得例子:

1 /**

2 * 供給型接口,Supplier

3 */

4 @Test

5 public void test2 () {

6 Random ran = new Random();

7 List list = supplier(10, () -> ran.nextInt(10));

8

9 for (Integer i : list) {

10 System.out.println(i);

11 }

12 }

13

14 /**

15 * 隨機產生sum個數量得集合

16 * @param sum 集合內元素個數

17 * @param sup

18 * @return

19 */

20 public List supplier(int sum, Supplier sup){

21 List list = new ArrayList();

22 for (int i = 0; i < sum; i++) {

23 list.add(sup.get());

24 }

25 return list;

26 }

上面就是一個供給類型得接口,只有產出,沒人輸入,就是只有返回值,沒有入參

三、Function:函數型接口(R apply(T t))

下面看一個簡單的例子:

1 /**

2 * 函數型接口:Function

3 */

4 @Test

5 public void test3 () {

6 String s = strOperar(" asdf ", x -> x.substring(0, 2));

7 System.out.println(s);

8 String s1 = strOperar(" asdf ", x -> x.trim());

9 System.out.println(s1);

10 }

11

12 /**

13 * 字符串操作

14 * @param str 需要處理得字符串

15 * @param fun Function接口

16 * @return 處理之后得字符傳

17 */

18 public String strOperar(String str, Function fun) {

19 return fun.apply(str);

20 }

上面就是一個函數型接口,輸入一個類型得參數,輸出一個類型得參數,當然兩種類型可以一致。

四、Predicate:斷言型接口(boolean test(T t))

下面看一個簡單得例子:

1 /**

2 * 斷言型接口:Predicate

3 */

4 @Test

5 public void test4 () {

6 List l = new ArrayList<>();

7 l.add(102);

8 l.add(172);

9 l.add(13);

10 l.add(82);

11 l.add(109);

12 List list = filterInt(l, x -> (x > 100));

13 for (Integer integer : list) {

14 System.out.println(integer);

15 }

16 }

17

18 /**

19 * 過濾集合

20 * @param list

21 * @param pre

22 * @return

23 */

24 public List filterInt(List list, Predicate pre){

25 List l = new ArrayList<>();

26 for (Integer integer : list) {

27 if (pre.test(integer))

28 l.add(integer);

29 }

30 return l;

31 }

上面就是一個斷言型接口,輸入一個參數,輸出一個boolean類型得返回值。

五、其他類型的一些函數式接口

除了上述得4種類型得接口外還有其他的一些接口供我們使用:

1).BiFunction

參數類型有2個,為T,U,返回值為R,其中方法為R?apply(T t, U u)

2).UnaryOperator(Function子接口)

參數為T,對參數為T的對象進行一元操作,并返回T類型結果,其中方法為T apply(T t)

3).BinaryOperator(BiFunction子接口)

參數為T,對參數為T得對象進行二元操作,并返回T類型得結果,其中方法為T apply(T t1, T t2)

4).BiConsumcr(T, U)

參數為T,U無返回值,其中方法為 void accept(T t, U u)

5).ToIntFunction、ToLongFunction、ToDoubleFunction

參數類型為T,返回值分別為int,long,double,分別計算int,long,double得函數。

6).IntFunction、LongFunction、DoubleFunction

參數分別為int,long,double,返回值為R。

以上就是java8內置得核心函數式接口,其中包括了大部分得方法類型,所以可以在使用得時候根據不同得使用場景去選擇不同得接口使用。

總結

以上是生活随笔為你收集整理的java 内置函数_java8 四大内置核心函数式接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。