Javaのjava.util.Mapをかっこよく使いこなしたい!

こんにちは。java.util.Mapをかっこよく使いこなしたい関口です。
 
よく使われるMapについて、ざっくりまとめてみました!

目次

Mapは種類もいろいろあります。追加する方法などは同じですが、追加した後に値が保持される順番が異なります。用途によって使い分けたいですね。

HashMap
並びに決まりがない
Hashtable
keyで降順になる
TreeMap
keyで昇順になる
LinkedHashMap
追加した順番で並ぶ

基本的なMapの宣言の仕方です。例文ではHashMapを使用します。
 

// データ型を指定してオブジェクト生成する
Map<データ型, データ型> マップ変数 = new HashMap<>();
 
// String型を指定してオブジェクト生成する例
Map<String, String> map = new HashMap<>();
 
// Listを指定することもできます
Map<String, List<String>> map = new HashMap<>();

追加する際は、keyとValueをセットで追加します。すでに同一のkeyが入っている場合は、上書きされます。
削除する際は、指定した値がMapに入っている場合にのみ削除されます。
 

// Mapに追加する
map.put("key", "value");

// keyだけ指定して削除する
map.remove("key");

// keyとvalueを指定して削除することもできます
map.remove("key", "value");

Mapに追加した要素でループします。
 

// Mapでループして、keyとvalueを取得する
for (Map.Entry<String, String> entry : map.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
}

// Mapのkeyだけでループすることもできます
for (String key : map.keySet()) {
}

// 同じくvalueだけでループもできます
for (String value : map.values()) {
}

よく使う便利なメソッドをまとめました。
 

// Mapに入っている値の数を返します【戻り値:int】
map.size();

// 指定したkeyがMapに含まれている場合にtrueを返します【戻り値:boolean】
map.containsKey("key");

// 指定したvalueがMapに含まれている場合にtrueを返します【戻り値:boolean】
map.containsValue("value");

// Mapに値が入っていない場合にtrueを返します【戻り値:boolean】
map.isEmpty();

// Mapの内容すべてを削除します
map.clear();

// 指定したkeyがMapに含まれている場合、valueを置き換えます
map.replace("key", "newValue");

// 指定したkeyとvalueのセットがMapに含まれている場合、valueを置き換えます
map.replace("key", "value", "newValue");

// Mapの内容すべてを別のMapへコピーします
Map<String, String> newMap = new LinkedHashMap<>();
newMap.putAll(map);

さいごに

いかがでしたでしょうか。
 
今回紹介した他にも、便利メソッドがあるようなので、いろいろ試していきたいですね。
 
Mapを使いこなすまでの道は険しい……!

記事をシェア
MOST VIEWED ARTICLES