Menu
CoddyTech

Modificar Diccionarios

Parte de la sección Lógica y Flujo del Journey de Java de Coddy. Lección 14 de 59.

Los HashMaps también permiten eliminar y actualizar entradas usando los métodos put(), remove() y replace().

Por ejemplo, primero rellenemos un HashMap:

HashMap<String, String> users = new HashMap<>();
users.put("alice", "Admin");
users.put("bob", "User");

Para eliminar una clave:

users.remove("bob"); // Elimina "bob"
System.out.println(users);
// {alice=Admin}

Para actualizar una clave:

users.replace("alice", "Guest");
// Actualiza alice a Guest

users.replace("Charlie", "Admin");
// No hace nada (la clave "Charlie" no existe)
challenge icon

Desafío

Fácil

Escribe un método llamado modifyMap que modifique un HashMap dado según condiciones específicas.

  1. Recibe un HashMap llamado data donde:
    • Las claves son de tipo String.
    • Los valores son de tipo Integer.
  2. Recibe un String key.
  3. Recibe un Integer newValue.

El método debe devolver el HashMap actualizado siguiendo estas instrucciones:

  • Si la clave existe en data y tiene el mismo valor que newValue, usa replace(), pero aumenta el valor en 1.
  • Si la clave existe, pero tiene un valor diferente, elimínala.
  • Si la clave no existe, añádela con newValue.

Pruébalo tú mismo

// --- Módulos para convertir una cadena de hashmap en un 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) {
        // Escribe tu código aquí
    }

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

        // Convierte un String de HashMap en un 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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de Java online