Menu
Coddy logo textTech

Изменение словарей

Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 14 из 59.

HashMaps также поддерживают удаление ключей и обновление их. Методы put(), remove() и replace().

Например, давайте сначала заполним HashMap:

HashMap<String, String> users = new HashMap<>();
users.put("alice", "Admin");
users.put("bob", "User");

Чтобы удалить ключ:

users.remove("bob"); // Удаляет "bob"
System.out.println(users);
// {alice=Admin}

Чтобы обновить ключ:

users.replace("bob", "Guest");
// Updates bob to Guest

users.replace("Charlie", "Admin");
// Does nothing (key "Charlie" doesn't exist)
challenge icon

Задание

Легко

Напишите метод с именем <strong>modifyMap</strong>, который изменяет заданный HashMap на основе конкретных условий.

  1. Принимает HashMap с именем data, где:
    • Ключи имеют тип String.
    • Значения имеют тип Integer.
  2. Принимает String key.
  3. Принимает Integer newValue.

Метод должен возвращать обновленный HashMap, выполняя следующие действия:

  • Если ключ существует в data и имеет такое же значение, как newValue, используйте <strong>replace()</strong>, но увеличьте значение на 1.
  • Если ключ существует, но имеет другое значение, удалите его.
  • Если ключ не существует, добавьте его с <strong>newValue</strong>.

Шпаргалка

Методы HashMap для изменения данных:

Удалить ключ:

users.remove("bob"); // Removes "bob" key-value pair

Обновить/заменить значение:

users.replace("alice", "Guest"); // Updates existing key
users.replace("nonexistent", "Admin"); // Does nothing if key doesn't exist

Добавить или обновить ключ:

users.put("newUser", "Admin"); // Adds new key or updates existing

Попробуйте сами

// --- Модули для преобразования строки HashMap в HashMap ---
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
// -----------------------------
import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static HashMap<String, Integer> modifyMap(HashMap<String, Integer> data, String key, int newValue) {
        // Напишите свой код здесь
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String hashMapString = scanner.nextLine();
        String key = scanner.nextLine();
        int newValue = scanner.nextInt();

        // Преобразование строки HashMap в HashMap
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);

        HashMap<String, Integer> result = modifyMap(data, key, newValue);
        System.out.println(new Gson().toJson(result));
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком