Podsumowanie — HashMap
Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 15 z 59.
Wyzwanie
ŁatwyUtwórz metodę o nazwie processHashMap, która przyjmuje HashMap<String, Integer> oraz tablicę operacji typu String, a następnie wykonuje następujące działania:
1. Operacja GET
- Format:
"GET key" - Działanie:
- Jeśli klucz istnieje: wypisz wartość
- Jeśli klucz nie istnieje: wypisz
"Not found"
2. Operacja CHECK
- Format:
"CHECK key" - Działanie:
- Jeśli klucz istnieje: wypisz
"Exists" - Jeśli klucz nie istnieje: wypisz
"Not found"
- Jeśli klucz istnieje: wypisz
3. Operacja MODIFY
- Format:
"MODIFY key targetValue" - Działanie:
- Jeśli klucz istnieje ORAZ jego bieżąca wartość jest równa targetValue: użyj
replace(), aby zaktualizować wartość na targetValue + 1 - Jeśli klucz istnieje, ALE jego bieżąca wartość różni się od targetValue: użyj
remove(), aby usunąć klucz - Jeśli klucz nie istnieje: użyj
put(), aby dodać go z wartością targetValue
- Jeśli klucz istnieje ORAZ jego bieżąca wartość jest równa targetValue: użyj
- Uwaga: NIE wypisuj niczego podczas operacji MODIFY
Wynik końcowy:
Po przetworzeniu wszystkich operacji metoda powinna zwrócić zmodyfikowaną HashMap. Metoda main wypisze ją w formacie JSON.
Spróbuj swoich sił
// --- Moduły do konwersji ciągu znaków reprezentującego hashmapę na 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) {
// Wpisz tutaj swój kod
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String hashMapString = scanner.nextLine();
String operationsString = scanner.nextLine();
// Przekształć String reprezentujący HashMap w HashMap
Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);
// Przekształć String reprezentujący Array w Array
String[] operations = new Gson().fromJson(operationsString, String[].class);
HashMap<String, Integer> result = processHashMap(data, operations);
System.out.println(new Gson().toJson(result));
}
}
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DDodawanie i odejmowanie macierzyTablice postrzępioneTablice 3D i większeTypowe wzorce dla tablic 2DPodsumowanie — wszystko o tablicach2HashMap część 1
Czym jest HashMap?Deklarowanie HashMapDostęp do wartościSprawdzanie, czy klucz istniejeModyfikowanie słownikówPodsumowanie — HashMap3HashMap — część 2
Metody HashMapIterowanie za pomocą keySet()Iterowanie za pomocą entrySet()Zagnieżdżona HashMapPowtórka — zarządzanie magazynemPowtórka — operacje na HashMap6Zaawansowany przepływ sterowania
Instrukcje etykietująceWyrażenie switchDopasowywanie wzorcówKlauzule ochronnePowtórzenie — przepływ sterowania9Projekt — licznik unikalnych słów
Wprowadzanie i przechowywanie tekstuPrzetwarzanie słówPoćwicz samodzielnie: Kompilator Java online