Modificare i dizionari
Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 14 di 59.
Le HashMap supportano anche la rimozione e l'aggiornamento delle voci usando i metodi put(), remove() e replace().
Ad esempio, popoliamo prima una HashMap:
HashMap<String, String> users = new HashMap<>();
users.put("alice", "Admin");
users.put("bob", "User");Per rimuovere una chiave:
users.remove("bob"); // Rimuove "bob"
System.out.println(users);
// {alice=Admin}Per aggiornare una chiave:
users.replace("alice", "Guest");
// Aggiorna alice a Guest
users.replace("Charlie", "Admin");
// Non fa nulla (la chiave "Charlie" non esiste)Sfida
FacileScrivi un metodo chiamato <strong>modifyMap</strong> che modifica una HashMap specificata in base a condizioni specifiche.
- Riceve una HashMap chiamata
datain cui:- Le chiavi sono di tipo
String. - I valori sono di tipo
Integer.
- Le chiavi sono di tipo
- Riceve una String
key. - Riceve un Integer
newValue.
Il metodo dovrebbe restituire la HashMap aggiornata seguendo queste regole:
- Se la chiave esiste in
datae ha lo stesso valore dinewValue, usa<strong>replace()</strong>ma aumenta il valore di 1. - Se la chiave esiste ma ha un valore diverso, rimuovila.
- Se la chiave non esiste, aggiungila con
<strong>newValue</strong>.
Provalo tu
// --- Moduli per convertire una stringa di hashmap in 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) {
// Scrivi il tuo codice qui
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String hashMapString = scanner.nextLine();
String key = scanner.nextLine();
int newValue = scanner.nextInt();
// Converti String di HashMap in 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));
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Concetti di base degli array 2DAccesso agli elementi degli array 2DCicli annidati con array 2DRiepilogo - Array 2DAddizione e sottrazione di matriciArray irregolariArray 3D e oltreSchemi comuni degli array 2DRiepilogo - Tutto sugli array4HashSet Parte 1
Che cos'è un HashSet?Aggiungere un elementoRimuovere un elementoVerificare se un elemento esisteVuoto e dimensioneSvuotare e clonareRipasso - HashSet7Gestione di base degli errori
Nozioni di base su try-catchBlocco finallyLancio di eccezioniEccezioni personalizzate2HashMap Parte 1
Che cos'è una HashMap?Dichiarare una HashMapAccedere ai valoriVerificare se una chiave esisteModificare i dizionariRiepilogo - HashMap3HashMap Parte 2
Metodi di HashMapIterare con keySet()Iterare con entrySet()HashMap annidateRiepilogo - Gestire il magazzinoRiepilogo - Operazioni con HashMap6Flusso di controllo avanzato
Istruzioni con etichettaEspressione switchCorrispondenza dei patternClausole guardiaRiepilogo - Flusso di controllo9Progetto - Contatore di parole uniche
Inserimento e memorizzazione del testoElaborazione delle paroleEsercitati da solo: Compilatore Java online