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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

1.7 Java 8中Map新增的方法

發布時間:2025/3/20 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.7 Java 8中Map新增的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 8 除了為 Map 增加了 remove(Object key, Object value) 默認方法之外,還增加了如下方法。

名稱說明
Object compute(Object key, BiFunction remappingFunction)該方法使用 remappingFunction 根據原 key-value 對計算一個新 value。只要新 value 不為 null,就使用新 value 覆蓋原 value;如果原 value 不為 null,但新 value 為 null,則刪除原 key-value 對;如果原 value、新 value 同時為 null,那么該方法不改變任何 key-value 對,直接返回 null。
Object computeIfAbsent(Object key, Function mappingFunction)如果傳給該方法的 key 參數在 Map 中對應的 value 為 null,則使用 mappingFunction 根據 key 計算一個新的結果,如果計算結果不為 null,則用計算結果覆蓋原有的 value。如果原 Map 原來不包括該 key,那么該方法可能會添加一組 key-value 對。
Object computeIfPresent(Object key, BiFunction remappingFunction)如果傳給該方法的 key 參數在 Map 中對應的 value 不為 null,該方法將使用 remappingFunction 根據原 key、value 計算一個新的結果,如果計算結果不為 null,則使用該結果覆蓋原來的 value;如果計算結果為 null,則刪除原 key-value 對。
void forEach(BiConsumer action)該方法是 Java 8 為 Map 新增的一個遍歷 key-value 對的方法,通過該方法可以更簡潔地遍歷 Map 的 key-value 對。
Object getOrDefault(Object key, V defaultValue)獲取指定 key 對應的 value。如果該 key 不存在,則返回 defaultValue。
Object merge(Object key, Object value, BiFunction remappingFunction)該方法會先根據 key 參數獲取該 Map 中對應的 value。如果獲取的 value 為 null,則直接用傳入的 value 覆蓋原有的 value(在這種情況下,可能要添加一組 key-value 對);如果獲取的 value 不為 null,則使用 remappingFunction 函數根據原 value、新 value 計算一個新的結果,并用得到的結果去覆蓋原有的 value。
Object putIfAbsent(Object key, Object value)該方法會自動檢測指定 key 對應的 value 是否為 null,如果該 key 對應的 value 為 null,該方法將會用新 value 代替原來的 null 值。
Object replace(Object key, Object value)將 Map 中指定 key 對應的 value 替換成新 value。與傳統 put() 方法不同的是,該方法不可能添加新的 key-value 對。如果嘗試替換的 key 在原 Map 中不存在,該方法不會添加 key-value 對,而是返回 null。
boolean replace(K key, V oldValue, V newValue)將 Map 中指定 key-value 對的原 value 替換成新 value。如果在 Map 中找到指定的 key-value 對,則執行替換并返回 true,否則返回 false。
replaceAll(BiFunction function)該方法使用 BiFunction 對原 key-value 對執行計算,并將計算結果作為該 key-value 對的 value 值。

下面程序示范了 Map 常用默認方法的功能和用法。

import java.util.HashMap; import java.util.Map;public class Test {public static void main(String[] args) {Map map=new HashMap();map.put("天空", 90);map.put("陸地", 60);map.put("海洋", 30);map.put("異世界", 0);//嘗試替換key為“地獄”的value,猶豫map中沒有對應的key,map沒有改變,不會添加新的key-valuemap.replace("地獄", -18);System.out.println(map);// 使用原value與傳入參數計算出來的結果覆蓋原有的valuemap.merge("天空", 90, (oldVal, param) -> (Integer) oldVal * (Integer) param);System.out.println(map);//當key為“煉獄”對應的value為null(或不存在)時,使用計算的結果作為新valuemap.computeIfAbsent("煉獄",(key)->((String)key).length()*2);System.out.println(map);//map 中添加了煉獄=4 這組 key-value 對// 當key為"Java"對應的value存在時,使用計算的結果作為新valuemap.computeIfPresent("煉獄", (key, value) -> (Integer) value * (Integer) value);System.out.println(map); // map 中 煉獄=4 變成 煉獄=16} } {異世界=0, 陸地=60, 海洋=30, 天空=90} {異世界=0, 陸地=60, 海洋=30, 天空=8100} {異世界=0, 陸地=60, 海洋=30, 天空=8100, 煉獄=4} {異世界=0, 陸地=60, 海洋=30, 天空=8100, 煉獄=16}

上面程序中注釋已經寫得很清楚了,而且給出了每個方法的運行結果,讀者可以結合這些方法的 API 文檔來閱讀學習,從而掌握 Map 中默認方法的功能與用法。

總結

以上是生活随笔為你收集整理的1.7 Java 8中Map新增的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。