Menu
CoddyTech

Mengubah dictionary

Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 14 dari 59.

HashMap juga mendukung penghapusan dan pembaruan entri menggunakan method put(), remove(), dan replace().

Sebagai contoh, mari isi HashMap terlebih dahulu:

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

Untuk menghapus sebuah kunci:

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

Untuk memperbarui sebuah key:

users.replace("alice", "Guest");
// Memperbarui alice menjadi Guest

users.replace("Charlie", "Admin");
// Tidak melakukan apa-apa (key "Charlie" tidak ada)
challenge icon

Tantangan

Mudah

Tulis method bernama modifyMap yang mengubah HashMap berdasarkan kondisi tertentu.

  1. Menerima HashMap bernama data dengan ketentuan:
    • Key bertipe String.
    • Nilai bertipe Integer.
  2. Menerima String key.
  3. Menerima Integer newValue.

Method tersebut harus mengembalikan HashMap yang sudah diperbarui dengan mengikuti ketentuan berikut:

  • Jika key ada di data dan memiliki nilai yang sama dengan newValue, gunakan replace(), tetapi tingkatkan nilainya sebanyak 1.
  • Jika key ada, tetapi memiliki nilai yang berbeda, hapus key tersebut.
  • Jika key tidak ada, tambahkan key tersebut dengan nilai newValue.

Coba sendiri

// --- module untuk mengubah string dari hashmap menjadi 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) {
        // Tulis kodemu di sini
    }

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

        // Ubah String dari HashMap menjadi 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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Java online