Java8のMapクラスに追加されたgetOrDefaultメソッド
Java8のMapクラスにgetOrDefaultというメソッドが追加されました。
このメソッドはキーに対する値がnullであれば初期値に置き換えるというメソッドです。キーのマッピングが含まれていない場合はdefaultValueを返すメソッドです。
キーに対して値をセットするわけではありません。
ちょっとわかりにくいので以下を参照ください。
import java.util.Map;
import java.util.HashMap;
public class Sample {
public static void main(String[] args) {
Map<String,String> map = new HashMap<>();
String str = map.getOrDefault("key","value");
System.out.println(map.get("key"));
System.out.println(str);
}
}
結果は以下のようになります。
null value

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^

コメント
このメソッドはキーに対する値がnullであれば初期値に置き換えるというメソッドです。
とありますが、
“このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。”
が正しいと思います。(参照:https://docs.oracle.com/javase/jp/8/docs/api/java/util/Map.html)
つまり、Map内に (key, null) の組み合わせが存在する場合においてはnullを置き換えることはないと思います。
Map map = new HashMap();
map.put(1,null);
String value = map.getOrDefault(1,”defaultV”); <- これはnull のままだと思います。
System.out.println(value);
出力は "defaultV" ではなく null になると思います。
ご丁寧にありがとうございます。
今少し時間がなく、試して確認次第記事を修正いたします。
わざわざありがとうございます★