Menu
CoddyTech

Mengubah dictionary

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

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

Sebagai contoh, mari kita 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");
// Mengubah 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 yang diberikan 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 harus mengembalikan HashMap yang diperbarui dengan mengikuti ketentuan berikut:

  • Jika key ada di data dan memiliki nilai yang sama dengan newValue, gunakan replace(), tetapi naikkan nilainya sebesar 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 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 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