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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Java 常用函数式接口 —— Supplier接口

發(fā)布時間:2023/12/29 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 Java 常用函数式接口 —— Supplier接口 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JDK提供了大量常用的函數(shù)式接口以豐富Lambda的典型使用場景,它們主要在 java.util.function 包中被提供。 下面是最簡單的Supplier接口及使用示例。

Supplier接口概述

// Supplier接口源碼


@FunctionalInterface
public interface Supplier<T> {

    /**
     * Gets a result.
     *
     * @return a result
     */
    T get();
}

java.util.function.Supplier<T> 接口僅包含一個無參的方法: T get() 。用來獲取一個泛型參數(shù)指定類型的對象數(shù)據(jù)。由于這是一個函數(shù)式接口,這也就意味著對應的Lambda表達式需要“對外提供”一個符合泛型類型的對象數(shù)據(jù)。如:

import java.util.function.Supplier;

public class Demo01Supplier {
    public static void main(String[] args) {
        String msgA = "Hello ";
        String msgB = "World ";
        System.out.println(
                getString(
                        () -> msgA + msgB
                )
        );
    }

    private static String getString(Supplier<String> stringSupplier) {
        return stringSupplier.get();
    }
}

控制臺輸出:

Hello World 

練習:求數(shù)組元素最大值

使用 Supplier 接口作為方法參數(shù)類型,通過Lambda表達式求出int數(shù)組中的最大值。接口的泛型使用 java.lang.Integer 類。

import java.util.function.Supplier;

public class DemoNumberMax {
    public static void main(String[] args) {
        int[] numbers = {100, 200, 300, 400, 500, -600, -700, -800, -900, -1000};
        int numberMax = arrayMax(
                () -> {
                    int max = numbers[0];
                    for (int number : numbers) {
                        if (max < number) {
                            max = number;
                        }
                    }
                    return max;
                }
        );
        System.out.println("數(shù)組中的最大值為:" + numberMax);
    }

    /**
     * 獲取一個泛型參數(shù)指定類型的對象數(shù)據(jù)
     * @param integerSupplier 方法的參數(shù)為Supplier,泛型使用Integer
     * @return 指定類型的對象數(shù)據(jù)
     */
    public static Integer arrayMax(Supplier<Integer> integerSupplier) {
        return integerSupplier.get();
    }
}

控制臺輸出:

數(shù)組中的最大值為:500

總結(jié)

以上是生活随笔為你收集整理的Java 常用函数式接口 —— Supplier接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。