Menu
Coddy logo textTech

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)
challenge icon

Sfida

Facile

Scrivi un metodo chiamato <strong>modifyMap</strong> che modifica una HashMap specificata in base a condizioni specifiche.

  1. Riceve una HashMap chiamata data in cui:
    • Le chiavi sono di tipo String.
    • I valori sono di tipo Integer.
  2. Riceve una String key.
  3. Riceve un Integer newValue.

Il metodo dovrebbe restituire la HashMap aggiornata seguendo queste regole:

  • Se la chiave esiste in data e ha lo stesso valore di newValue, 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));
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Java online