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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

新增方法java_Java8_map新增方法

發(fā)布時(shí)間:2024/9/27 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 新增方法java_Java8_map新增方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考博客

default方法

map.put(1, "a");

map.put(2, "b");

getOrDefault方法

如果指定的key存在,返回value,不存在,返回指定的值

System.out.pringln(map.getOrDefaullt(4, "d"))

forEach方法

遍歷Map中的所有Entry, 對key, value進(jìn)行處理

// 輸出1a, 2b, 3c

map.forEach((key, value) -> System.out.println(key + value));

replaceAll方法

替換Map中所有Entry的value值,這個(gè)值由舊的key和value計(jì)算得出,接收參數(shù) (K, V) -> V, 類似如下代碼

map.replaceAll((key, value) -> (key + 1) + value);

// 輸出 12a 23b 34c

map.forEach((key, value) -> System.out.println(key + value));

putIfAbsent 方法

如果key關(guān)聯(lián)的value不存在,則關(guān)聯(lián)新的value值,返回key關(guān)聯(lián)的舊的值

相當(dāng)于

V v = map.get(key);

if (v == null)

v = map.put(key, value);

return v;

remove 方法

接收2個(gè)參數(shù),key和value,如果key關(guān)聯(lián)的value值與指定的value值相等(equals),則刪除這個(gè)元素

if (map.containsKey(key) && Objects.equals(map.get(key), value)) {

map.remove(key);

return true;

} else

return false;

replace(K key, V oldValue, V newValue) 方法

如果key關(guān)聯(lián)的值與指定的oldValue的值相等,則替換成新的newValue

if (map.containsKey(key) && Objects.equals(map.get(key), value)) {

map.put(key, newValue);

return true;

} else

return false;

replace(K key, V value) 方法

if (map.containsKey(key)) {

return map.put(key, value);

} else

return null;

computeIfAbsent 方法

如果指定的key不存在,則通過指定的K -> V計(jì)算出新的值設(shè)置為key的值

if (map.get(key) == null) {

V newValue = mappingFunction.apply(key);

if (newValue != null)

map.put(key, newValue);

}

栗子:

map.computeIfAbsent(1, key -> key + " computed");

// 存在key為1,則不進(jìn)行計(jì)算,輸出值 a

System.out.println(map.get(1));

map.computeIfAbsent(4, key -> key + " computed");

// 不存在key為4,則進(jìn)行計(jì)算,輸出值 4 computed

System.out.println(map.get(4));

computeIfPresent 方法

如果指定的key存在,則根據(jù)舊的key和value計(jì)算新的值newValue,

如果newValue不為null,則設(shè)置key新的值為newValue,

如果newValue為null,則刪除該key的值

if (map.get(key) != null) {

V oldValue = map.get(key);

V newValue = remappingFunction.apply(key, oldValue);

if (newValue != null)

map.put(key, newValue);

else

map.remove(key);

}

eg:

map.computeIfPresent(1, (key, value) -> (key + 1) + value);

// 存在key為1, 則根據(jù)舊的key和value計(jì)算新的值,輸出 2a

System.out.println(map.get(1));

map.computeIfPresent(2, (key, value) -> null);

// 存在key為2, 根據(jù)舊的key和value計(jì)算得到null,刪除該值,輸出 null

System.out.println(map.get(2));

merge(K key, V value, BiFunction super V, ? super V, ? extends V> remappingFunction) 方法

如果指定的key不存在,則設(shè)置指定的value值,

否則根據(jù)key的舊的值oldvalue,value計(jì)算出新的值newValue,

如果newValue為null,

則刪除該key,否則設(shè)置key的新值newValue。類似如下代碼

V oldValue = map.get(key);

V newValue = (oldValue == null) ? value :

remappingFunction.apply(oldValue, value);

if (newValue == null)

map.remove(key);

else

map.put(key, newValue);

eg:

// 存在key為1, 輸出 a merge

System.out.println(map.merge(1, " merge", (oldValue, newValue) -> oldValue + newValue));

// 新值為null,刪除key,輸出 null

System.out.println(map.merge(1, " merge", (oldValue, newValue) -> null));

// 輸出 " merge"

System.out.println(map.merge(4, " merge", (oldValue, newValue) -> oldValue + newValue));

總結(jié)

以上是生活随笔為你收集整理的新增方法java_Java8_map新增方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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