Lambda-常用函数式接口
生活随笔
收集整理的這篇文章主要介紹了
Lambda-常用函数式接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、常用函數式接口
JDK提供了大量常用的函數式接口以豐富Lambda的典型使用場景,它們主要在 java.util.function 包中被提供。 下面是最簡單的幾個接口及使用示例。#1.Supplier接口
java.util.function.Supplier<T> 接口僅包含一個無參的方法: T get() 。用來獲取一個泛型參數指定類型的對象數據。由于這是一個函數式接口,這也就意味著對應的Lambda表達式需要“對外提供”一個符合泛型類型的對象數據。 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 練習:求數組元素最大值
使用 Supplier 接口作為方法參數類型,通過Lambda表達式求出int數組中的最大值。提示:接口的泛型請使用 java.lang.Integer 類。 public class Demo02Test { //定一個方法,方法的參數傳遞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}; //調用getMax方法,參數傳遞Lambdaint maxNum = getMax(()‐>{ //計算數組的最大值 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接口相反,它不是生產一個數據,而是消費一個數據,其數據類型由泛型決定。 疑問:什么是消費呢??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Lambda-常用函数式接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lambda-函数式接口(1)
- 下一篇: 微信支付分-支付失败原因总结