Обновление значения в HashMap на Java — методы put, replace и merge

Пример 1: Обновление значения HashMap с помощью put()

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<String, Integer> numbers = new HashMap<>();
    numbers.put("First", 1);
    numbers.put("Second", 2);
    numbers.put("Third", 3);
    System.out.println("HashMap: " + numbers);

    // return the value of key Second
    int value = numbers.get("Second");

    // update the value
    value = value * value;

    // insert the updated value to the HashMap
    numbers.put("Second", value);
    System.out.println("HashMap with updated value: " + numbers);
  }
}

Вывод:

HashMap: {Second=2, Third=3, First=1}
HashMap with updated value: {Second=4, Third=3, First=1}

В приведённом примере мы использовали метод HashMap.put() для обновления значения ключа Second. Сначала мы получаем значение с помощью метода HashMap.get().

Пример 2: Обновление значения HashMap с помощью computeIfPresent()

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<String, Integer> numbers = new HashMap<>();
    numbers.put("First", 1);
    numbers.put("Second", 2);
    System.out.println("HashMap: " + numbers);

    // update the value of Second
    // Using computeIfPresent()
    numbers.computeIfPresent("Second", (key, oldValue) -> oldValue * 2);
    System.out.println("HashMap with updated value: " + numbers);

  }
}

Вывод:

HashMap: {Second=2, First=1}
HashMap with updated value: {Second=4, First=1}

В этом примере мы пересчитали значение ключа Second с помощью метода computeIfPresent(). Здесь мы передали лямбда-выражение в качестве аргумента метода.

Пример 3: Обновление значения HashMap с помощью merge()

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<String, Integer> numbers = new HashMap<>();
    numbers.put("First", 1);
    numbers.put("Second", 2);
    System.out.println("HashMap: " + numbers);

    // update the value of First
    // Using the merge() method
    numbers.merge("First", 4, (oldValue, newValue) -> oldValue + newValue);
    System.out.println("HashMap with updated value: " + numbers);
  }
}

Вывод:

HashMap: {Second=2, First=1}
HashMap with updated value: {Second=2, First=5}

В этом примере метод merge() складывает старое и новое значения ключа First, после чего обновлённое значение записывается в HashMap.