CodeGym /Java-Blog /Random-DE /So verwenden Sie die keySet-Methode in java.util.Map
Autor
Vasyl Malik
Senior Java Developer at CodeGym

So verwenden Sie die keySet-Methode in java.util.Map

Veröffentlicht in der Gruppe Random-DE
Wenn Sie alle Schlüssel benötigen, die Ihre Map enthält, können Sie die wirklich praktische Methode java.util.HashMap.keySet() verwenden. In diesem Artikel erklären wir, wie es funktioniert. Wie Sie wissen, implementiert die HashMap- Klasse die Map- Schnittstelle, daher werden wir in den Beispielen die HashMap- Methode keySet() verwenden .

Signatur und Funktionsprinzip der Methode HashMap keySet()

Die Methode Set<K> keySet() gibt eine Set- Ansicht der Schlüssel zurück, die in dieser Map enthalten sind. Das Merkmal dieser Set-Sammlung, die die Schlüssel behält, besteht darin, dass sie keine doppelten Elemente enthalten kann. Das Set wird durch die Karte unterstützt. Das heißt, wenn etwas in der Karte geändert wurde, wird dies auch im Set widergespiegelt und umgekehrt. Sie können beispielsweise Elemente aus diesem Satz entfernen und die Schlüssel und ihre entsprechenden Werte werden automatisch aus der Karte entfernt, Sie können ihr jedoch keine neuen Elemente hinzufügen.

Beispiele für HashMap keySet()

Erstellen wir eine HashMap mit den Namen unserer Freunde und ihren digitalen Schlüsseln und drucken wir dann den Satz der Schlüssel mit der HashMap- Methode keySet() aus .

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);
Die Ausgabe ist:
Schlüssel der Karte: [1, 2, 3, 4, 5]
Neben der Methode java.util.HashMap.keySet() gibt es in Java eine Methode enterSet() , die auch ein Set zurückgibt , dieses Set enthält jedoch Schlüssel-Wert-Paare. Hier ist ein Beispiel mit den Methoden java.util.HashMap.keySet() und 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());
       }
   }
}
Hier ist die Ausgabe:
Schlüssel der Karte: [1, 2, 3, 4, 5] Schlüssel und Werte der Karte: 1: John 2: Ivy 3: Ricky 4: Andrew 5: Alex
Versuchen wir nun, ein Element aus dem keySet zu entfernen und sicherzustellen, dass es sich auf unsere ursprüngliche HashMap auswirkt .

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);
   }
}
Die Ausgabe ist:
Schlüssel der Karte: [1, 2, 3, 4, 5] myHashMap nach dem Entfernen eines Elements aus myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} Schlüssel der Karte: [1, 2 , 3, 5]
Wie Sie sehen können, haben wir einen Schlüssel „4“ aus dem Set entfernt , was dazu führte, dass ein Paar „4-Alex“ aus unserer HashMap entfernt wurde . Versuchen wir nun, einen Schlüssel zu keySet() hinzuzufügen :

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);

   }
}
In diesem Fall erhalten wir eine Ausnahme, da unser keySet mit unserer hashMap verbunden ist :
Schlüssel der Karte: [1, 2, 3, 4, 5] Ausnahme im Thread „main“ java.lang.UnsupportedOperationException bei java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) bei KeySetDemo.main (KeySetDemo.java:20) Der Prozess wurde mit Exit-Code 1 abgeschlossen
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION