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(ES6),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 になると思います。
ご丁寧にありがとうございます。
今少し時間がなく、試して確認次第記事を修正いたします。
わざわざありがとうございます★