Jika Anda perlu mendapatkan semua kunci yang berisi Peta Anda , Anda dapat menggunakan metode java.util.HashMap.keySet() yang sangat berguna . Pada artikel ini, kami akan menjelaskan cara kerjanya. Seperti yang Anda ketahui, kelas HashMap mengimplementasikan antarmuka Peta , jadi dalam contoh kita akan menggunakan metode keySet() HashMap .

Tanda tangan metode HashMap keySet() dan prinsip operasi

Metode Set<K> keySet() mengembalikan tampilan Set dari kunci yang terdapat dalam peta ini. Fitur kumpulan Set ini, yang menyimpan kunci, adalah tidak boleh ada elemen duplikat di dalamnya. Set didukung oleh peta. Itu artinya jika ada sesuatu yang diubah di peta, itu tercermin di set, dan sebaliknya. Misalnya, Anda dapat menghapus item dari set ini, dan kunci serta nilainya secara otomatis dihapus dari peta, tetapi Anda tidak dapat menambahkan item baru di dalamnya.

Contoh HashMap keySet()

Mari buat HashMap dengan nama teman kita dan kunci digitalnya lalu cetak Set kunci menggunakan metode HashMap keySet() .

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class KeySetDemo {
   public static void main(String[] args) {
       Map<Integer, String> myHashMap = new HashMap<>();
       myHashMap.put(1, "John");
       myHashMap.put(2, "Ivy");
       myHashMap.put(3, "Ricky");
       myHashMap.put(4, "Andrew");
       myHashMap.put(5, "Alex");

       //using map.keyset() method and print out the result
       Set<Integer> myKeySet = myHashMap.keySet();
       System.out.println("myKeySet of the map: "+myKeySet);
Outputnya adalah:
kunci peta: [1, 2, 3, 4, 5]
Selain metode java.util.HashMap.keySet() di Java ada metode entrySet() , ia juga mengembalikan Set , tetapi set ini berisi pasangan nilai kunci. Berikut adalah contoh dengan metode java.util.HashMap.keySet() dan java.util.HashMap.entrySet() :

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class KeySetDemo {
   public static void main(String[] args) {
       Map<Integer, String> myHashMap = new HashMap<>();
       myHashMap.put(1, "John");
       myHashMap.put(2, "Ivy");
       myHashMap.put(3, "Ricky");
       myHashMap.put(4, "Andrew");
       myHashMap.put(5, "Alex");

       //using map.keyset() method and print out the result
       Set<Integer> myKeySet = myHashMap.keySet();
       System.out.println("keys of the map: " + myKeySet);
       System.out.println("keys and values of the map: " );
       for( Map.Entry e : myHashMap.entrySet()){
           System.out.println(e.getKey() + " : " + e.getValue());
       }
   }
}
Inilah hasilnya:
kunci peta: [1, 2, 3, 4, 5] kunci dan nilai peta: 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
Sekarang mari kita coba untuk menghapus sebuah elemen dari keySet dan pastikan itu mempengaruhi HashMap asli kita .

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class KeySetDemo {
   public static void main(String[] args) {
       Map<Integer, String> myHashMap = new HashMap<>();
       myHashMap.put(1, "John");
       myHashMap.put(2, "Ivy");
       myHashMap.put(3, "Ricky");
       myHashMap.put(4, "Andrew");
       myHashMap.put(5, "Alex");

       //using map.keyset() method and print out the result
       Set<Integer> myKeySet = myHashMap.keySet();
       System.out.println("keys of the map: " + myKeySet);
      myKeySet.remove(4);
       System.out.println("myHashMap after removing an element from myKeySet: " + myHashMap);
       System.out.println("keys of the map: " + myKeySet);
   }
}
Outputnya adalah:
kunci peta: [1, 2, 3, 4, 5] myHashMap setelah menghapus elemen dari myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} kunci peta: [1, 2 , 3, 5]
Seperti yang Anda lihat, kami menghapus kunci "4" dari Set , dan hasilnya menghapus sepasang "4-Alex" dari HashMap kami . Sekarang mari kita coba menambahkan kunci ke keySet() :

import java.util.HashMap;
       import java.util.Map;
       import java.util.Set;

public class KeySetDemo {
   public static void main(String[] args) {
       Map<Integer, String> myHashMap = new HashMap<>();
       myHashMap.put(1, "John");
       myHashMap.put(2, "Ivy");
       myHashMap.put(3, "Ricky");
       myHashMap.put(4, "Andrew");
       myHashMap.put(5, "Alex");

       //using map.keyset() method and print out the result
       Set<Integer> myKeySet = myHashMap.keySet();
       System.out.println("keys of the map: " + myKeySet);
       myKeySet.add(7);

   }
}
Dalam hal ini kita akan mendapatkan Pengecualian, karena keySet kita terhubung ke hashMap kita :
kunci peta: [1, 2, 3, 4, 5] Pengecualian di utas "utama" java.lang.UnsupportedOperationException di java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) di KeySetDemo.main (KeySetDemo.java:20) Proses selesai dengan kode keluar 1