Java HashMap computeIfPresent() メソッド
computeIfPresent() メソッドは、そのキーが hashMap に存在する場合に、hashMap 内の指定されたキーの値を再計算します。
computeIfPresent() メソッドの構文は次のとおりです:
hashmap.computeIfPresent(K key, BiFunction remappingFunction)
注:hashmap は HashMap クラスのオブジェクトです。
パラメータの説明:
- key - キー
- remappingFunction - 再マッピング関数。値を再計算するために使用されます。
戻り値
key に対応する value が存在しない場合は null を返し、存在する場合は remappingFunction によって再計算された値を返します。
例
以下の例では、computeIfPresent() メソッドの使用法を示しています:
例
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);
// 靴に10%の付加価値税を加えた後の価値を再計算する
int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100);
System.out.println("Price of Shoes after VAT: " + shoesPrice);
// 更新された HashMap を出力する
System.out.println("Updated HashMap: " + prices);
}
}
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);
// 靴に10%の付加価値税を加えた後の価値を再計算する
int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100);
System.out.println("Price of Shoes after VAT: " + shoesPrice);
// 更新された HashMap を出力する
System.out.println("Updated HashMap: " + prices);
}
}
上記のプログラムを実行すると、出力結果は次のようになります:
HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shoes after VAT: 220
Updated HashMap: {Pant=150, Bag=300, Shoes=220}}
上記の例では、prices という名前の HashMap を作成しました。
次の式に注意してください:
prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100)
コードでは、匿名関数のラムダ式を使用しました。(key, value) -> value + value * 10/100再マッピング関数として。
ラムダ式の詳細については、次を参照してください:Java ラムダ式。
その他の拡張
Java HashMap