Menu
CoddyTech

Modificando Dicionários

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

HashMaps também permitem remover e atualizar entradas usando os métodos put(), remove() e replace().

Por exemplo, vamos preencher um HashMap primeiro:

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

Para remover uma chave:

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

Para atualizar uma chave:

users.replace("alice", "Guest");
// Atualiza alice para Guest

users.replace("Charlie", "Admin");
// Não faz nada (a chave "Charlie" não existe)
challenge icon

Desafio

Fácil

Escreva um método chamado modifyMap que modifica um HashMap fornecido com base em condições específicas.

  1. Recebe um HashMap chamado data, em que:
    • 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 estas regras:

  • Se a chave existir em data e tiver o mesmo valor que newValue, use replace(), 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 newValue.

Experimente você mesmo

// --- Módulos para converter uma 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();

        // Converta String de HashMap em 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

Pratique por conta própria: Compilador de Java online