java1.8新增超实用Map方法——Map.getOrDefault()和Map.value()方法详解
1. Map.getOrDefault()
翻譯一下官方解釋:
java.util.Map<K, V> V getOrDefault(Object key,
V defaultValue)
返回到指定鍵所映射的值,或defaultValue如果此映射包含該鍵的映射。
入?yún)?#xff1a;
鍵 - 其關(guān)聯(lián)值的鍵是要返回
默認(rèn)值 - 鍵的默認(rèn)映射
反參:
值以指定鍵被映射,或defaultValue如果此映射包含該鍵的映射
拋出:
ClassCastException -如果該鍵是不合適的類型為這個地圖(可選)
NullPointerException -如果指定鍵為null并且此映射不允許null鍵(可選)
implSpec:
缺省的實現(xiàn)有關(guān)此方法的同步或原子性沒有保證。 任何實現(xiàn)提供原子性保證必須覆蓋此方法,并記錄它的并發(fā)性能。
1.8加入
意思呢就是,調(diào)用getOrDefault方法,傳入key和一個值,如果當(dāng)前key有值,則返回對應(yīng)的value,如果沒有值,則設(shè)定為傳入的值為默認(rèn)值。
來看一下實際使用:
Map<String, Integer> counter = new HashMap<>();
counter.put("1",1);
counter.put("2",0);
counter.put("3",2);
counter.put("4",3);
//這里的value就獲取到了已經(jīng)存在的key="1"的value
int value = counter.getOrDefault("1", 0);
//這里的value2因為key為“5”的鍵值對不存在,就會進行一個put操作,然后將value設(shè)置為0;
int value2 = counter.getOrDefault("5", 0);
2. Map.value()
翻譯一下官方說明:
返回一個Collection值的視圖包含在此映射。 收集由映射支持,所以對映射的改變被反映在集合中,并且反之亦然。 如果地圖被同時修改了該集合的迭代過程中(除了通過迭代器自己的remove操作),則迭代的結(jié)果是不確定的。 收集支撐元件移除,即從地圖相應(yīng)的映射,通過Iterator.remove,Collection.remove,removeAll,retainAll和清除操作。 它不支持add或addAll操作。
返回:值的集合視圖包含在此映射
意思呢就是,返回當(dāng)前Map中所有的value值為一個集合。
來看一下實際使用:
Map<String, Integer> counter = new HashMap<>();
counter.put("1",1);
counter.put("2",0);
counter.put("3",2);
counter.put("4",3);
Collection<Integer> collection = counter.values();
c.forEach(ele -> System.out.println(ele));
輸出:
1
0
2
3
這里就將map中的value全部拿了出來放在了一個集合中,當(dāng)遇到需要直接使用map中的value值時,就可以使用這個方法進行快捷的轉(zhuǎn)化。
總結(jié)
以上是生活随笔為你收集整理的java1.8新增超实用Map方法——Map.getOrDefault()和Map.value()方法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 力扣每日一题——独一无二出现的次数
- 下一篇: 力扣解题——求根到叶子节点数字之和