Lambda-常用函数式接口
生活随笔
收集整理的這篇文章主要介紹了
Lambda-常用函数式接口
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、常用函數(shù)式接口
JDK提供了大量常用的函數(shù)式接口以豐富Lambda的典型使用場(chǎng)景,它們主要在 java.util.function 包中被提供。 下面是最簡單的幾個(gè)接口及使用示例。#1.Supplier接口
java.util.function.Supplier<T> 接口僅包含一個(gè)無參的方法: T get() 。用來獲取一個(gè)泛型參數(shù)指定類型的對(duì)象數(shù)據(jù)。由于這是一個(gè)函數(shù)式接口,這也就意味著對(duì)應(yīng)的Lambda表達(dá)式需要“對(duì)外提供”一個(gè)符合泛型類型的對(duì)象數(shù)據(jù)。 import java.util.function.Supplier; public class Demo08Supplier {private static String getString(Supplier<String> function) {return function.get();}public static void main(String[] args) {String msgA = "Hello"; String msgB = "World";System.out.println(getString(() ‐> msgA + msgB));} }#1.2 練習(xí):求數(shù)組元素最大值
使用 Supplier 接口作為方法參數(shù)類型,通過Lambda表達(dá)式求出int數(shù)組中的最大值。提示:接口的泛型請(qǐng)使用 java.lang.Integer 類。 public class Demo02Test { //定一個(gè)方法,方法的參數(shù)傳遞Supplier,泛型使用Integer public static int getMax(Supplier<Integer> sup){return sup.get(); }public static void main(String[] args) {int arr[] = {2,3,4,52,333,23}; //調(diào)用getMax方法,參數(shù)傳遞Lambdaint maxNum = getMax(()‐>{ //計(jì)算數(shù)組的最大值 int max = arr[0];for(int i : arr){if(i>max){max = i;} }return max;});System.out.println(maxNum);} }#2.Consumer接口
java.util.function.Consumer<T> 接口則正好與Supplier接口相反,它不是生產(chǎn)一個(gè)數(shù)據(jù),而是消費(fèi)一個(gè)數(shù)據(jù),其數(shù)據(jù)類型由泛型決定。 疑問:什么是消費(fèi)呢??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Lambda-常用函数式接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lambda-函数式接口(1)
- 下一篇: 微信支付分-支付失败原因总结