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

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

Контроль потока Java

Массив Java

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

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

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

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

Список Java (List)

Queue (очередь) Java

Множество Java Map

Множество Java Set

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

Читатель/писатель Java

Другие темы Java

Метод replaceAll() класса Java HashMap: использование и примеры

Java методы HashMap

Метод replaceAll() класса Java HashMap заменяет все элементы хэш-таблицы результатами указанной функции.

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

hashmap.replaceAll(Bifunction<K, V> function)

параметр replaceAll()

  • функция - Применяется к каждой записи хэш-мапы

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

Метод replaceAll() не возвращает никакого значения. Он заменяет все значения хэш-мапы новым значением, возвращаемым функцией.

Пример 1: Заменить все значения на строчные

import java.util.HashMap;
class Main {
    public static void main(String[] args) {
        // Создать HashMap
        HashMap<Integer, String> languages = new HashMap<>();
        // Вставить запись в HashMap
        languages.put(1, "java");
        languages.put(2, "javascript");
        languages.put(3, "python");
        System.out.println("HashMap: " + languages);
        // Все значения изменить на строчные
        languages.replaceAll((key, value) -> value.toUpperCase());
        System.out.println("Обновленный HashMap: " + languages);
    }
}

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

HashMap: {1=java, 2=javascript, 3=python}
Обновленный HashMap: {1=JAVA, 2=JAVASCRIPT, 3=PYTHON}

В предыдущем примере мы создали хэш-мапу под названием languages. Обратите внимание на эту строку:

languages.replaceAll((key, value) -> value.toUpperCase());

здесь:

  • (key, value) -> value.toUpperCase() - это лямбда-выражение. Оно преобразует все значения хэш-таблицы в верхний регистр и возвращает. Для получения дополнительной информации посетитеJava Lambda выражения.

  • replaceAll() - Заменить все значения хэш-мапы на значение, возвращаемое лямбда-выражением.

Пример 2: Заменить все значения квадратом ключа

import java.util.HashMap;
class Main {
    public static void main(String[] args) {
        // Создать HashMap
        HashMap<Integer, Integer> numbers = new HashMap<>();
        // В HashMap вставить запись
        numbers.put(5, 0);
        numbers.put(8, 1);
        numbers.put(9, 2);
        System.out.println("HashMap: " + numbers);
        //Replace all values with the square of the key
        numbers.replaceAll((key, value) -> key * key);;
        System.out.println("Обновленный HashMap: " + numbers);
    }
}

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

HashMap: {5=0, 8=1, 9=2}
Обновленный HashMap: {5=25, 8=64, 9=81}

В上面的 примере мы создали хеш-мапу с именем numbers. Обратите внимание на эту строку:

numbers.replaceAll((key, value) -> key * key);

здесь:

  • (key, value) -> key * key - вычислитьключвозвратить квадрат

  • replaceAll() - использовать (key,value)->key*key для замены всех значений hashmap

Java методы HashMap