English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Map-сборники

Java Set-сборники

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Использование метода compute() Java HashMap и примеры

Java методы HashMap

Метод compute() Java HashMap вычисляет новый значений и связывает его с указанным ключом в хэш-мапе.

Синтаксис метода compute():

hashmap.compute(K key, BiFunction remappingFunction)

Параметры compute()

Метод compute() имеет два параметра:

  • ключ - Связанного с вычисленным значением

  • remappingFunction - Для указанногоКлючФункция вычисления нового значения

Внимание:remappingFunction может принимать два параметра.

Возврат значения compute()

  • Возвращает новое значение, связанное с ключом

  • Если нет значения, связанного с ключом, то возвращает null

Внимание:Если результат remappingFunction равен null, то будет удалена указаннаяКлючкарта.

Пример: вставка нового значения в HashMap compute()

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 newPrice = prices.compute("Shoes", (key, value) -> value - value * 10/100);
    System.out.println("Цена обуви с скидкой: " + newPrice);
    //Вывод обновленного HashMap
    System.out.println("Обновленный HashMap: " + prices);
  }
}

Результат вывода

HashMap: {Pant=150, Bag=300, Shoes=200}
Цена обуви с скидкой: 180
Обновленный HashMap: {Pant=150, Bag=300, Shoes=180}

В примере выше мы создали хеш-мапу под названием prices. Обратите внимание на выражение

prices.compute("Shoes", (key, value) -> value - value * 10/100)

Здесь,

  • (key, value) -> value - value * 10/100 -  Это lambda выражение. Оно снижает первоначальную цену обуви на 10% и возвращает. Для получения更多信息 о lambda выражениях посетитеJava Lambda выражения.

  • prices.compute() - Ассоциировать возвращаемое lambda выражением новое значение с mappings Shoes

Внимание:Согласно официальной документации JavaHashMap merge()Методы проще, чем метод compute()

Рекомендуется к прочтению

  • HashMap computeIfAbsent() - Если указанный ключ не ассоциирован с любым значением, то вычислить это значение

  • HashMap computeIfPresent() - Если указанный ключ уже ассоциирован с значением, то вычислить это значение

Java методы HashMap