CodeGym /Blog Java /Random-PL /Jak używać metody keySet w java.util.Map
Autor
Vasyl Malik
Senior Java Developer at CodeGym

Jak używać metody keySet w java.util.Map

Opublikowano w grupie Random-PL
Jeśli chcesz uzyskać wszystkie klucze, które zawiera Twoja mapa , możesz użyć bardzo przydatnej metody java.util.HashMap.keySet() . W tym artykule wyjaśnimy, jak to działa. Jak wiesz, klasa HashMap implementuje interfejs Map , więc w przykładach użyjemy metody HashMap keySet() .

Podpis metody HashMap keySet() i zasada działania

Metoda Set<K> keySet() zwraca widok zestawu kluczy zawartych w tej mapie. Cechą tej kolekcji Set, która przechowuje klucze, jest to, że nie mogą się w niej duplikować elementy. Do zestawu dołączona jest mapa. Oznacza to, że jeśli coś zostało zmienione na mapie, jest to odzwierciedlone w zestawie i odwrotnie. Na przykład możesz usunąć elementy z tego zestawu, a klucze i odpowiadające im wartości są automatycznie usuwane z mapy, ale nie możesz dodawać do niego nowych elementów.

HashMap keySet() przykłady

Stwórzmy HashMap z imionami naszych znajomych i ich cyfrowymi kluczami, a następnie wydrukujmy Zestaw kluczy za pomocą metody 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);
Dane wyjściowe to:
klawisze mapy: [1, 2, 3, 4, 5]
Oprócz metody java.util.HashMap.keySet() w Javie istnieje metoda entrySet() , która zwraca również Set , ale ten zestaw zawiera pary klucz-wartość. Oto przykład z metodami java.util.HashMap.keySet() i 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());
       }
   }
}
Oto dane wyjściowe:
klawisze mapy: [1, 2, 3, 4, 5] klawisze i wartości mapy: 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
Teraz spróbujmy usunąć element z zestawu kluczy i upewnić się, że wpływa on na naszą oryginalną HashMap .

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);
   }
}
Dane wyjściowe to:
klucze mapy: [1, 2, 3, 4, 5] myHashMap po usunięciu elementu z myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} klucze mapy: [1, 2 , 3, 5]
Jak widać, usunęliśmy klucz „4” z zestawu , co zaowocowało usunięciem pary „4-Alex” z naszej mapy HashMap . Teraz spróbujmy dodać klucz do 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);

   }
}
W tym przypadku otrzymamy wyjątek, ponieważ nasz zestaw kluczy połączył się z naszą hashMap :
klucze mapy: [1, 2, 3, 4, 5] Wyjątek w wątku „main” java.lang.UnsupportedOperationException w java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) w KeySetDemo.main (KeySetDemo.java:20) Proces zakończony kodem wyjścia 1
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION