Изменение словарей
Часть раздела Логика и управление потоком путешествия по 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("alice", "Guest");
// Обновляет alice на Guest
users.replace("Charlie", "Admin");
// Ничего не делает (ключ "Charlie" не существует)Задание
ЛегкоНапишите метод с именем <strong>modifyMap</strong>, который изменяет заданный HashMap на основе определенных условий.
- Принимает HashMap с именем
data, где:- Ключи имеют тип
String. - Значения имеют тип
Integer.
- Ключи имеют тип
- Принимает String
key. - Принимает Integer
newValue.
Метод должен возвращать обновленный HashMap, следуя правилам:
- Если ключ существует в
dataи имеет то же значение, что иnewValue, используйте<strong>replace()</strong>, но увеличьте значение на 1. - Если ключ существует, но имеет другое значение, удалите его.
- Если ключ не существует, добавьте его с
<strong>newValue</strong>.
Попробуйте сами
// --- Модули для преобразования строки 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));
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов