欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java8中關(guān)于Function.identity()的使用

 更新時間:2023年05月31日 09:54:28   作者:ACGkaka_  
這篇文章主要介紹了Java8中關(guān)于Function.identity()的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

關(guān)于Function.identity()的使用

簡單介紹

話不多說,直接上JDK源碼:

static Function identity() {
    return t -> t;
}

我們可以看到,F(xiàn)unction.identity() 的作用就是 獲取一個直接返回入?yún)⒌暮瘮?shù)。

補充:Java8 允許再接口中加入具體方法。接口中的具體方法有兩種:default方法static方法。

identify() 就是 Function 接口的一個 static 方法。

使用示例

當我們使用 Stream 想要將集合的某一屬性(例如手機號)作為 key,對象本身作為 value 時,就可以在 Collectors.toMap() 中配合使用 Function.identity()。

// 查詢數(shù)據(jù)
List<UserInfo> list = userInfoMapper.getList();
// 獲取 手機號-UserInfo 映射
Map<String, UserInfo> phoneNumberMap = list.stream().collect(Collectors.toMap(UserInfo::getPhoneNumber(), Function.identity(), (v1, v2) -> v1));

不適用場景

不適用于 mapToInt()mapToLong()、mapToDouble() 等需要進行拆箱操作的場景。

public static void main(String[] args) {
	List<Integer> list = Arrays.asList(1, 2, 3);
	int[] array = list.stream().mapToInt(Function.identity()).toArray();
	System.out.println(array.length);
}

因為這三個方法的入?yún)⒉⒉皇?Function 類型,而是 ToIntFunciton、ToLongFunction、ToDoubleFunction。

Function.identity()的含義

Java 8允許在接口中加入具體方法。

接口中的具體方法有兩種,default方法和static方法.

identity()就是Function接口的一個靜態(tài)方法。

Function.identity()返回一個輸出跟輸入一樣的Lambda表達式對象,等價于形如t -> t形式的Lambda表達式

? ? private static void identity() {
? ? ? ? Stream<String> stream = Stream.of("I", "love", "you", "too");
? ? ? ? Map<String, Integer> map = stream.collect(Collectors.toMap(Function.identity(), String::length));
? ? ? ? System.out.println(map);
? ? }

輸出結(jié)果為:

 {love=4, too=3, I=1, you=3}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot中FailureAnalyzer的使用詳解

    SpringBoot中FailureAnalyzer的使用詳解

    這篇文章主要介紹了SpringBoot中FailureAnalyzer的使用詳解,FailureAnalyzer攔截啟動時異常,將異常轉(zhuǎn)換成更加易讀的信息并包裝成org.springframework.boot.diagnostics.FailureAnalysis對象,監(jiān)控應(yīng)用啟動過程,需要的朋友可以參考下
    2023-12-12
  • BeanUtils.copyProperties()所有的空值不復制問題

    BeanUtils.copyProperties()所有的空值不復制問題

    這篇文章主要介紹了BeanUtils.copyProperties()所有的空值不復制問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot中的Redis?緩存問題及操作方法

    SpringBoot中的Redis?緩存問題及操作方法

    這篇文章主要介紹了SpringBoot中的Redis?緩存,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Java實現(xiàn)將Boolean轉(zhuǎn)為Json對象的方法

    Java實現(xiàn)將Boolean轉(zhuǎn)為Json對象的方法

    在Java中,將boolean值轉(zhuǎn)換為JSON對象通常涉及使用JSON庫,例如org.json或Gson,這里我們將使用org.json庫來進行詳細演示,這個庫提供了簡單且直觀的方法來創(chuàng)建和操作JSON對象,需要的朋友可以參考下
    2024-11-11
  • Java 動態(tài)模擬操作系統(tǒng)進程調(diào)度算法

    Java 動態(tài)模擬操作系統(tǒng)進程調(diào)度算法

    這篇文章主要介紹了采用java語言編程模擬N個進程采用動態(tài)高優(yōu)先權(quán)優(yōu)先進程調(diào)度算法。文中代碼具有一定的學習價值,感興趣的小伙伴可以了解一下
    2021-12-12
  • java線程安全鎖ReentrantReadWriteLock原理分析readLock

    java線程安全鎖ReentrantReadWriteLock原理分析readLock

    這篇文章主要為大家介紹了java線程安全鎖ReentrantReadWriteLock原理分析readLock,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • java 輸入一個數(shù)字,反轉(zhuǎn)輸出這個數(shù)字的值(實現(xiàn)方法)

    java 輸入一個數(shù)字,反轉(zhuǎn)輸出這個數(shù)字的值(實現(xiàn)方法)

    下面小編就為大家?guī)硪黄猨ava 輸入一個數(shù)字,反轉(zhuǎn)輸出這個數(shù)字的值(實現(xiàn)方法)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Spark使用IDEA編寫wordcount的示例演示

    Spark使用IDEA編寫wordcount的示例演示

    這篇文章主要介紹了Spark使用IDEA編寫wordcount的示例演示,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 使用@Valid+BindingResult進行controller參數(shù)校驗方式

    使用@Valid+BindingResult進行controller參數(shù)校驗方式

    這篇文章主要介紹了使用@Valid+BindingResult進行controller參數(shù)校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)詳細教程

    一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)詳細教程

    使用SSM(Spring、SpringMVC和Mybatis)已經(jīng)有段時間了,項目在技術(shù)上已經(jīng)沒有什么難點了,基于現(xiàn)有的技術(shù)就可以實現(xiàn)想要的功能,下面這篇文章主要給大家介紹了關(guān)于整合SSM框架:Spring MVC + Spring + MyBatis的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07

最新評論