CodeGym /Java Blog /Acak /Cara memperbarui nilai kunci yang ada di HashMap
John Squirrels
Level 41
San Francisco

Cara memperbarui nilai kunci yang ada di HashMap

Dipublikasikan di grup Acak
Anda tahu bahwa selalu ada kunci dan nilai di HashMap atau Map lainnya . Kunci disebut kunci karena suatu alasan karena Anda mendapatkan akses ke nilai dengan kunci tersebut. Kuncinya unik, tetapi nilainya tidak. Jadi Anda tidak bisa mendapatkan kunci berdasarkan nilai karena nilai dapat digandakan. Pada artikel ini, kita akan mengetahui cara memperbarui nilai kunci yang ada di HashMap di Java. Mari kita ingat sintaks Java. HashMap di Java dideklarasikan dengan cara berikut:

 HashMap<Key, Value> name
Mari kita ambil contoh. Katakanlah, kami memiliki empat teman dan khusus untuk mereka kami membuat dan mengisi HashMap dengan nama mereka. Kunci mereka adalah bilangan bulat.

Map<Integer, String> names = new HashMap<Integer, String>();
       names.put(1, "Stan");
       names.put(2, "Kyle");
       names.put(3, "Kenny");
       names.put(4, "Cartman");
Catatan: Anda dapat membuat dan mengisi Peta Anda dengan berbagai cara. Misalnya menggunakan blok inisialisasi. Ini dia:

Map<Integer, String> names = new HashMap<Integer, String>() {
           {
               put(1, "Stan");
               put(2, "Kyle");
               put(3, "Kenny");
               put(4, "Cartman");
           }
       };
Atau menggunakan metode dan konstruktor HashMap dengan argumen peta lainnya . Metode ini tersedia dari versi 9 dan yang lebih baru.

Map<Integer, String> names = new HashMap<>(Map.of(1, "Stan", 2, "Kyle", 3, "Kenny", 4, "Cartman"));
Seperti yang kami katakan sebelumnya, di kunci HashMap kami adalah bilangan bulat, dan nilainya berisi beberapa string, dalam kasus kami, nama karakter. Nah, katakanlah sesuatu yang buruk terjadi pada Kenny (para pembaca yang mengetahui serial kartun South Park, tahu pasti bahwa sesuatu yang buruk sering terjadi pada Kenny). Jadi ketika itu terjadi kita harus menghapus Kenny dari perusahaan ini ( HashMap kita ), dan menggantinya dengan teman lain, katakanlah, dengan nama Butters. Ini sangat mudah dilakukan karena merupakan operasi nilai pembaruan. Bocah Kenny kami memiliki kunci == 3 . Kita perlu mengubah nilai kunci 3, tempat Kenny berada. Kita dapat menggunakan metode put() untuk melakukan ini:

names.put(3, "Butters");
Dalam hal ini, jika kita menampilkan peta kita di layar, hasilnya adalah sebagai berikut:

{1=Stan, 2=Kyle, 3=Butters, 4=Cartman}
Bagaimana jika semuanya baik-baik saja dengan Kenny dan kami ingin mempertahankannya di perusahaan, tetapi kami memiliki alasan untuk memperbarui kuncinya? Katakanlah, dia bukan lagi nomor tiga, tapi nomor lima. Mari kita masukkan lagi Kenny ke peta kita dengan kunci 5 dan cetak hasilnya. Kita dapat menggunakan metode put dengan baik. Berikut kode lengkap untuk contoh ini:

import java.util.HashMap;

public class HashMapUpdKey {
   public static void main(String[] args) {
       Map<Integer, String> names = new HashMap<>(Map.of(1, "Stan", 2, "Kyle", 3, "Kenny", 4, "Cartman"));
       names.put(5, "Kenny");
       System.out.println(names);
   }
}
Anda mungkin sudah menebak apa hasilnya:

{1=Stan, 2=Kyle, 3=Kenny, 4=Cartman, 5=Kenny}
Apakah ini yang kita harapkan? Sekarang Kenny memiliki dua kunci di HashMap kami . Sebenarnya, ini adalah dua Kenny yang berbeda, apa pun yang kami maksud, karena objek kami ditentukan secara unik oleh kuncinya. Ini seperti paspor seseorang, harus unik. Jadi Anda tidak bisa begitu saja mengganti nama atau memperbarui kunci hashmap setelah ditambahkan secara langsung. Operasi ini tidak tersedia. Namun, Anda dapat melakukan manuver yang menipu: masukkan entri baru dengan kunci baru dan hapus yang lama. Ini dapat dilakukan dengan menggunakan metode hapus HashMap . remove() tidak hanya menghapus asosiasi tetapi juga mengembalikan nilai yang dihapus (jika ada sebelumnya). Mari lengkapi contoh kita dengan operasi ini:

//easy replacement example
import java.util.HashMap;

public class HashMapUpdKey {
   public static void main(String[] args) {
      Map<Integer, String> names = new HashMap<>(Map.of(1, "Stan", 2, "Kyle", 3, "Kenny", 4, "Cartman"));
           
       names.put(5, "Kenny"); //Adding “new” Kenny 
       System.out.println(names.remove(3)); //Update value of the key: Removing “old” Kenny and print out deleted value

       System.out.println(names);
   }
}
Sekarang kami akhirnya mendapatkan apa yang kami butuhkan, memperbarui kunci yang dengannya kami dapat menemukan Kenny. Inilah hasilnya:
Kenny {1=Stan, 2=Kyle, 4=Pedagang, 5=Kenny}
Tentu saja, kami dapat melakukan operasi menghapus Kenny "lama" dan menambahkan yang baru dalam urutan apa pun. Mereka pada dasarnya mandiri. Atau persingkat kode Anda hanya dengan menggunakan satu baris:

names.put(5, names.remove(3));
Hasilnya pasti akan sama. Jadi, satu-satunya cara yang tepat untuk mengubah kunci di Java HashMap adalah menghapus entri dan memasukkan nilai yang sama dengan kunci baru. Anda dapat melakukannya dengan cara yang berbeda tetapi ceritanya akan hampir sama tentang menambahkan dan menghapus elemen.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION