Menu
Coddy logo textTech

Итоги - HashMap

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

challenge icon

Задание

Легко

Создайте метод с именем processHashMap, который принимает HashMap<String, Integer> и массив операций String, затем выполняет следующие действия:

1. Операция GET

  • Формат: "GET key"
  • Действие:
    • Если ключ существует: Вывести значение
    • Если ключ не существует: Вывести "Not found"

2. Операция CHECK

  • Формат: "CHECK key"
  • Действие:
    • Если ключ существует: Вывести "Exists"
    • Если ключ не существует: Вывести "Not found"

3. Операция MODIFY

  • Формат: "MODIFY key targetValue"
  • Действие:
    • Если ключ существует И текущее значение равно targetValue: Используйте replace() для обновления значения до targetValue + 1
    • Если ключ существует, НО текущее значение отличается от targetValue: Используйте remove() для удаления ключа
    • Если ключ не существует: Используйте put() для добавления его с targetValue в качестве значения
  • Примечание: НЕ выводите ничего во время операций MODIFY

Итоговый вывод:

После обработки всех операций метод должен вернуть измененный HashMap. Метод main выведет его в формате JSON.

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

// --- Модули для преобразования строки 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> processHashMap(HashMap<String, Integer> data, String[] operations) {
        // Напишите ваш код здесь
    }

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

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

        // Преобразование строки массива в массив
        String[] operations = new Gson().fromJson(operationsString, String[].class);

        HashMap<String, Integer> result = processHashMap(data, operations);
        System.out.println(new Gson().toJson(result));
    }
}

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