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

java8中Map的一些騷操作總結(jié)

 更新時間:2021年02月03日 15:12:59   作者:知識追尋者  
這篇文章主要給大家介紹了關(guān)于java8中Map的一些騷操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一 前言

本篇內(nèi)容是關(guān)于 map 新特性的一些方法使用上的介紹,如果有不足之處歡迎補(bǔ)充!!

二 map新特性

關(guān)于以下函數(shù)式編程的函數(shù)的計算知識追尋者都使用 簡單字符串代替了,參數(shù)無非就是Key,value;

2.1 forEach

forEach迭代,相當(dāng)于for循環(huán)

 public static void main(String[] args) {
  HashMap<String, Object> hashMap = new HashMap<>();
  hashMap.put("key1","小熊貓");
  hashMap.put("key2","大熊貓");
  // 遍歷
  hashMap.forEach((key,value) -> {
   System.out.println("key:"+key + " value: "+value);
  });

 }

輸出

key:key1 value: 小熊貓
key:key2 value: 大熊貓

2.2 computeIfAbsentjava

如果key的值不存在就使用函數(shù)結(jié)果代替;

值存在示例,任然是使用舊值;

 public static void main(String[] args) {
  HashMap<String, Object> hashMap = new HashMap<>();
  hashMap.put("key","無墨生香");
  // 如果key的值不存在就使用 函數(shù)值代替
  hashMap.computeIfAbsent("key",s-> { return "處處香";});
  // {key=無墨生香}
  System.out.println(hashMap);
 }

值不存在示例,會使用函數(shù)值代替為新值;

 public static void main(String[] args) {
  HashMap<String, Object> hashMap = new HashMap<>();
  // 如果key的值不存在就使用 函數(shù)值代替
  hashMap.computeIfAbsent("key",s-> { return "處處香";});
  // {key=處處香}
  System.out.println(hashMap);
 }

2.3 computeIfPresent

如果key的值存在就使用函數(shù)值代替,如果 函數(shù)值為null , 會移除key;

值存在示例,會使用函數(shù)值代替舊值

  public static void main(String[] args) {
    HashMap<String, Object> hashMap = new HashMap<>();
    hashMap.put("key","無墨生香");
    // 如果key的值存在就使用函數(shù)值代替
    hashMap.computeIfPresent("key",(key,value)-> { return "處處香";});
    // {key4=處處香}
    System.out.println(hashMap);
  }

值不存在示例,為空

  public static void main(String[] args) {
    HashMap<String, Object> hashMap = new HashMap<>();
    // 如果key的值存在就使用函數(shù)值代替
    hashMap.computeIfPresent("key",(key,value)-> { return "處處香";});
    // {}
    System.out.println(hashMap);
  }

如果 函數(shù)值為null , 會移除key;

  public static void main(String[] args) {
    HashMap<String, Object> hashMap = new HashMap<>();
    hashMap.put("key","無墨生香");
    // 如果key的值存在就使用函數(shù)值代替
    hashMap.computeIfPresent("key",(key,value)-> { return null;});
    // {}
    System.out.println(hashMap);
  }

2.4 putIfAbsent

當(dāng)key的值存在時不替換值;當(dāng)key的值不存在時替換key的值;

當(dāng)key存在示例,還是舊值;

   public static void main(String[] args) {
     HashMap<String, Object> hashMap = new HashMap<>();
     hashMap.put("key","無墨生香");
     hashMap.putIfAbsent("key","處處香");
     //{key=無墨生香}
     System.out.println(hashMap);
   }

當(dāng)key不存在其實(shí)就是put操作;

   public static void main(String[] args) {
     HashMap<String, Object> hashMap = new HashMap<>();
     hashMap.putIfAbsent("key","處處香");
     //{key=處處香}
     System.out.println(hashMap);
   }

2.5 getOrDefault

當(dāng)key的值存在時獲取值,否則獲取指定的默認(rèn)值;

key值存在示例

  public static void main(String[] args) {
     HashMap<String, Object> hashMap = new HashMap<>();
     hashMap.put("key","無墨生香");
     //無墨生香
     System.out.println(hashMap.getOrDefault("key","處處香"));
   }

key值不存在示例

  public static void main(String[] args) {
     HashMap<String, Object> hashMap = new HashMap<>();
     //處處香
     System.out.println(hashMap.getOrDefault("key","處處香"));
   }

2.6 merge

如果key的值不存在會用新的值代替,如果key的值存在會用函數(shù)值代替舊值,當(dāng)函數(shù)值為空會移除key;

如果key的值不存在會用新的值(第二參數(shù))代替

   public static void main(String[] args) {
     HashMap<String, Object> hashMap = new HashMap<>();
     hashMap.merge("key","處處香",(key,value) -> { return "點(diǎn)擊在看";});
     //{key=處處香}
     System.out.println(hashMap);
   }

如果key的值存在會用函數(shù)值代替舊值;新的值(第二參數(shù))不起作用

  public static void main(String[] args) {
     HashMap<String, Object> hashMap = new HashMap<>();
     hashMap.put("key","無墨生香");
     hashMap.merge("key","處處香",(key,value) -> { return "點(diǎn)擊在看";});
     //{key=點(diǎn)擊在看}
     System.out.println(hashMap);
   }

當(dāng)函數(shù)值為空會移除key;

  public static void main(String[] args) {
     HashMap<String, Object> hashMap = new HashMap<>();
     hashMap.put("key","無墨生香");
     hashMap.merge("key","處處香",(key,value) -> { return null;});
     //{}
     System.out.println(hashMap);
   }

總結(jié)

到此這篇關(guān)于java8中Map的一些騷操作的文章就介紹到這了,更多相關(guān)java8中Map操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Springboot自動裝配原理詳解

    Java Springboot自動裝配原理詳解

    這篇文章主要介紹了詳解SpringBoot自動配置原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10
  • java POI解析Excel 之?dāng)?shù)據(jù)轉(zhuǎn)換公用方法(推薦)

    java POI解析Excel 之?dāng)?shù)據(jù)轉(zhuǎn)換公用方法(推薦)

    下面小編就為大家?guī)硪黄猨ava POI解析Excel 之?dāng)?shù)據(jù)轉(zhuǎn)換公用方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Netty客戶端接入流程N(yùn)ioSocketChannel創(chuàng)建解析

    Netty客戶端接入流程N(yùn)ioSocketChannel創(chuàng)建解析

    這篇文章主要為大家介紹了Netty客戶端接入流程N(yùn)ioSocketChannel創(chuàng)建源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • java實(shí)現(xiàn)百度云OCR文字識別 高精度OCR識別身份證信息

    java實(shí)現(xiàn)百度云OCR文字識別 高精度OCR識別身份證信息

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)百度云OCR文字識別,高精度OCR識別身份證信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • mybatis條件語句中帶數(shù)組參數(shù)的處理

    mybatis條件語句中帶數(shù)組參數(shù)的處理

    這篇文章主要介紹了mybatis條件語句中帶數(shù)組參數(shù)的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java開發(fā)學(xué)習(xí) Java數(shù)組操作工具

    Java開發(fā)學(xué)習(xí) Java數(shù)組操作工具

    這篇文章主要為大家詳細(xì)介紹了自己編寫的Java數(shù)組操作工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 解決Druid動態(tài)數(shù)據(jù)源配置重復(fù)刷錯誤日志的問題

    解決Druid動態(tài)數(shù)據(jù)源配置重復(fù)刷錯誤日志的問題

    使用druid數(shù)據(jù)庫連接池實(shí)現(xiàn)動態(tài)的配置數(shù)據(jù)源功能,在配置過程中出現(xiàn)一個問題既然是用戶自己配置的數(shù)據(jù)源,就無法避免輸入錯誤,連接失敗等情況,關(guān)于這個問題怎么處理呢,今天小編通過本文給大家詳細(xì)說明下,感興趣的朋友一起看看吧
    2021-05-05
  • 使用maven-assembly-plugin如何將system 依賴范圍的jar以class 方式打包進(jìn) jar包中

    使用maven-assembly-plugin如何將system 依賴范圍的jar以class 方式

    這篇文章主要介紹了使用maven-assembly-plugin如何將system 依賴范圍的jar以class 方式打包進(jìn) jar包中,本文給大家分享完美解決思路,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 一文詳解Reactor模型與實(shí)現(xiàn)示例

    一文詳解Reactor模型與實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Reactor模型與實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Spring Boot統(tǒng)一異常處理詳解

    Spring Boot統(tǒng)一異常處理詳解

    我們在做Web應(yīng)用的時候,請求處理過程中發(fā)生錯誤是非常常見的情況。這個時候就需要統(tǒng)一異常處理了,這篇文章主要給大家介紹了Spring Boot如何進(jìn)行統(tǒng)一異常處理的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02

最新評論