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 admiten la eliminación y actualización de entradas utilizando los métodos put(), remove() y replace().
Por ejemplo, primero poblaremos 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)Desafío
FácilEscribe un método llamado <strong>modifyMap</strong> que modifique un HashMap dado basándose en condiciones específicas.
- Recibe un HashMap llamado
datadonde:- Las claves son de tipo
String. - Los valores son de tipo
Integer.
- Las claves son de tipo
- Recibe un String
key. - Recibe un Integer
newValue.
El método debe devolver el HashMap actualizado siguiendo estas reglas:
- Si la clave existe en
datay tiene el mismo valor quenewValue, utiliza<strong>replace()</strong>pero incrementa el valor en 1. - Si la clave existe pero tiene un valor diferente, elimínala.
- Si la clave no existe, añádela con
<strong>newValue</strong>.
Pruébalo tú mismo
// --- Módulos para convertir un string de hashmap a 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 a 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));
}
}
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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras