Modyfikowanie słowników
Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 14 z 59.
Mapy HashMap obsługują również usuwanie i aktualizowanie wpisów za pomocą metod put(), remove() i replace().
Na przykład najpierw wypełnijmy HashMap:
HashMap<String, String> users = new HashMap<>();
users.put("alice", "Admin");
users.put("bob", "User");Aby usunąć klucz:
users.remove("bob"); // Usuwa "bob"
System.out.println(users);
// {alice=Admin}Aby zaktualizować klucz:
users.replace("alice", "Guest");
// Aktualizuje alice do Guest
users.replace("Charlie", "Admin");
// Nic nie robi (klucz "Charlie" nie istnieje)Wyzwanie
ŁatwyNapisz metodę o nazwie <strong>modifyMap</strong>, która modyfikuje daną strukturę HashMap zgodnie z określonymi warunkami.
- Przyjmuje strukturę HashMap o nazwie
data, w której:- Klucze są typu
String. - Wartości są typu
Integer.
- Klucze są typu
- Przyjmuje wartość typu String o nazwie
key. - Przyjmuje wartość typu Integer o nazwie
newValue.
Metoda powinna zwrócić zaktualizowaną strukturę HashMap, postępując zgodnie z poniższymi zasadami:
- Jeśli klucz istnieje w
datai ma taką samą wartość jaknewValue, użyj<strong>replace()</strong>, ale zwiększ wartość o 1. - Jeśli klucz istnieje, ale ma inną wartość, usuń go.
- Jeśli klucz nie istnieje, dodaj go z wartością
<strong>newValue</strong>.
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> modifyMap(HashMap<String, Integer> data, String key, int newValue) {
// Wpisz tutaj swój kod
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String hashMapString = scanner.nextLine();
String key = scanner.nextLine();
int newValue = scanner.nextInt();
// Przekonwertuj String reprezentujący HashMap na 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));
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
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