Java HashMap merge() メソッド

Java HashMap Java HashMap

merge() メソッドは、指定された key が存在するかどうかを最初に確認し、存在しない場合はキーと値のペアを hashMap に追加します。

merge() メソッドの構文は次のとおりです:

hashmap.merge(key, value, remappingFunction)

注:hashmap は HashMap クラスのオブジェクトです。

パラメータの説明:

  • key - キー
  • value - 値
  • remappingFunction - 再マッピング関数。値を再計算するために使用します。

戻り値

key に対応する value が存在しない場合はその value 値を返し、存在する場合は remappingFunction によって再計算された値を返します。

例

次の例は merge() メソッドの使用を示しています:

例

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
    // HashMap を作成します
    HashMap<String, Integer> prices = new HashMap<>();

    // HashMap にマッピングを挿入します
    prices.put("Shoes", 200);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: " + prices);

    int returnedValue = prices.merge("Shirt", 100, (oldValue, newValue) -> oldValue + newValue);
    System.out.println("Price of Shirt: " + returnedValue);

    // 更新された HashMap を出力します
    System.out.println("Updated HashMap: " + prices);
    }
}

上記のプログラムを実行すると、出力結果は次のようになります:

HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shirt: 100
Updated HashMap: {Pant=150, Shirt=100, Bag=300, Shoes=200}

上記の例では、prices という名前の HashMap を作成しました。

次の式に注目してください:

prices.merge("Shirt", 100, (oldValue, newValue) -> oldValue + newValue)

コードでは、匿名関数であるラムダ式 (oldValue, newValue) -> oldValue + newValue) を再マッピング関数として使用しました。

キー Shirt が prices に存在しないため、merge() メソッドはマッピング Shirt=100 を prices に挿入し、再マッピング関数の実行結果は無視されます。

ラムダ式の詳細については、次を参照してください:Java ラムダ式。

HashMap merge() メソッドによる重複する key を持つマッピング項目の挿入:

例

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // HashMap を作成します
        HashMap<String, String> countries = new HashMap<>();

        // HashMap にマッピング項目を挿入します
        countries.put("Washington", "America");
        countries.put("Canberra", "Australia");
        countries.put("Madrid", "Spain");
        System.out.println("HashMap: " + countries);

        // key が Washington のマッピングをマージします
        String returnedValue = countries.merge("Washington", "USA", (oldValue, newValue) -> oldValue + "/" + newValue);
        System.out.println("Washington: " + returnedValue);

        // 更新された HashMap を出力します
        System.out.println("Updated HashMap: " + countries);
    }
}

上記のプログラムを実行すると、出力結果は次のようになります:

HashMap: {Madrid=Spain, Canberra=Australia, Washington=America}
Washington: America/USA
Updated HashMap: {Madrid=Spain, Canberra=Australia, Washington=America/USA},  

上記の例では、countries という名前の HashMap を作成しました。

次の式に注目してください:

countries.merge("Washington", "USA", (oldValue, newValue) -> oldValue + "/" + newValue)

ここでは、ラムダ式を(oldValue, newValue) -> oldValue + "/" + newValue)再マッピング関数として使用しました。

キー washington は countries にすでに存在するため、古い値は再マッピング関数によって返された値に置き換えられます。したがって、Washington のマッピングには America/USA が含まれます。

Java HashMap Java HashMap

その他の拡張