Menu
Coddy logo textTech

Modificando Dicionários

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 14 de 59.

Os HashMaps também suportam remover chaves e atualizá-las pelos métodos put(), remove() e replace().

Por exemplo, vamos popular um HashMap primeiro:

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

Para remover uma chave:

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

Para atualizar uma chave:

users.replace("bob", "Guest");
// Updates bob to Guest

users.replace("Charlie", "Admin");
// Does nothing (key "Charlie" doesn't exist)
challenge icon

Desafio

Fácil

Escreva um método chamado <strong>modifyMap</strong> que modifica um HashMap dado com base em condições específicas.

  1. Recebe um HashMap chamado data onde:
    • As chaves são do tipo String.
    • Os valores são do tipo Integer.
  2. Recebe uma String key.
  3. Recebe um Integer newValue.

O método deve retornar o HashMap atualizado seguindo:

  • Se a chave existir em data e tiver o mesmo valor que newValue, use <strong>replace()</strong> mas aumente o valor em 1.
  • Se a chave existir mas tiver um valor diferente, remova-a.
  • Se a chave não existir, adicione-a com <strong>newValue</strong>.

Folha de consulta

Métodos do HashMap para modificar dados:

Remover uma chave:

users.remove("bob"); // Removes "bob" key-value pair

Atualizar/substituir um valor:

users.replace("alice", "Guest"); // Updates existing key
users.replace("nonexistent", "Admin"); // Does nothing if key doesn't exist

Adicionar ou atualizar uma chave:

users.put("newUser", "Admin"); // Adds new key or updates existing

Experimente você mesmo

// --- Módulos para converter string de hashmap em 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) {
        // Escreva seu código aqui
    }

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

        // Converter String de HashMap para 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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo