java8 Map中的 預設 value

2021-08-28 19:35:10 字數 879 閱讀 6012

類似 python 中的collections.defaultdict

map的新方法getordefault(object,v)允許呼叫者在**語句中規定獲得在map中符合提供的鍵的值,否則在沒有找到提供的鍵的匹配項的時候返回乙個「預設值」。

下一段**列舉對比了如何在jdk8之前檢查乙個map中匹配提供鍵的值是否找到,沒找到匹配項就使用乙個預設值是如何實現的,並且現在在jdk8中是如何實現的。

/*

* 示範map.getordefault方法並和jdk8之前的實現方法做對比。jdk8

* 中新增的map.getordefault方法相比於傳統的實現方法,所用的**行數更少

* 並且允許用乙個final型別的變數來接收返回值。

*/// jdk8之前的實現方法

string capitalgeorgia = statesandcapitals.

get(

"georgia");

if(capitalgeorgia == null)

// jdk8的實現方法

final string capitalwisconsin = statesandcapitals.

getordefault

("wisconsin"

,"unknown"

);

在apache commons包的defaultedmap類提供了和新的map.getordefault(object, v)方法類似的功能。groovy gdk中為groovy包含了乙個類似的方法,map.get(object,object),但是這個方法的行為有一點不同,因為它不僅僅在「鍵」沒找到的時候返回提供的預設值,而且還會將鍵和預設值增加到呼叫的map中。

Java8中介面的預設方法

在jdk 8之前,乙個介面不能包含任何實現。介面只包含常量和方法簽名。從jdk 8開始,可以定義介面中方法的預設實現。這些方法稱為預設方法。使用關鍵字 default 宣告乙個預設方法,它包含乙個方法體。所有實現類介面的預設方法都可用。如果實現類想要使用它,它可以使用它,或者它可以忽略預設實現並建立...

Java8增強的Map集合

map用於儲存具有對映關係的資料,因為map集合中儲存著兩組值,一組值用於儲存map裡的key,另外一組值用於儲存map裡的value,key和value都可以是任何引用型別的資料。map裡的key不允許重複,即同乙個map物件的任何兩個key通過equals方法比較總是返回false。key和va...

Java8中list轉map方法總結

1.利用collectors.tomap方法進行轉換 public map getidnamemap list accounts 其中第乙個引數就是可以,第二個引數就是value的值。2.收集物件實體本身 在開發過程中我們也需要有時候對自己的list中的實體按照其中的乙個字段進行分組 比如 id l...