CodeGym /Java Blog /Willekeurig /Hoe de keySet-methode te gebruiken in java.util.Map
John Squirrels
Niveau 41
San Francisco

Hoe de keySet-methode te gebruiken in java.util.Map

Gepubliceerd in de groep Willekeurig
Als u alle sleutels nodig heeft die uw kaart bevat, kunt u de erg handige methode java.util.HashMap.keySet() gebruiken . In dit artikel leggen we uit hoe het werkt. Zoals u weet, implementeert de HashMap- klasse de Map- interface, dus in de voorbeelden gaan we de HashMap keySet()- methode gebruiken.

HashMap keySet() methodehandtekening en werkingsprincipe

De methode Set<K> keySet() retourneert een Set- weergave van de sleutels in deze map. Het kenmerk van deze Set-collectie, die de sleutels behoudt, is dat er geen dubbele elementen in kunnen staan. De set wordt ondersteund door de kaart. Dat betekent dat als er iets op de kaart is veranderd, dit wordt weerspiegeld in de set en vice versa. U kunt bijvoorbeeld items uit deze set verwijderen en de sleutels en de bijbehorende waarden worden automatisch van de kaart verwijderd, maar u kunt er geen nieuwe items aan toevoegen.

HashMap keySet() voorbeelden

Laten we een HashMap maken met de namen van onze vrienden en hun digitale sleutels en vervolgens de set sleutels afdrukken met behulp van de HashMap keySet()- methode.

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);
De uitvoer is:
sleutels van de kaart: [1, 2, 3, 4, 5]
Naast de java.util.HashMap.keySet() methode in Java is er een entrySet() methode, deze retourneert ook een Set , maar deze set bevat sleutel-waardeparen. Hier is een voorbeeld met zowel java.util.HashMap.keySet() als java.util.HashMap.entrySet() methoden:

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 is de uitvoer:
sleutels van de kaart: [1, 2, 3, 4, 5] sleutels en waarden van de kaart: 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
Laten we nu proberen een element uit de keySet te verwijderen en ervoor te zorgen dat het onze originele HashMap beïnvloedt .

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);
   }
}
De uitvoer is:
sleutels van de kaart: [1, 2, 3, 4, 5] myHashMap na het verwijderen van een element uit myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} sleutels van de kaart: [1, 2 , 3, 5]
Zoals je kunt zien, hebben we een sleutel "4" uit de set verwijderd en dit resulteerde in het verwijderen van een paar "4-Alex" uit onze HashMap . Laten we nu proberen een sleutel toe te voegen aan 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);

   }
}
In dit geval krijgen we een uitzondering, omdat onze keySet is verbonden met onze hashMap :
sleutels van de kaart: [1, 2, 3, 4, 5] Uitzondering in thread "main" java.lang.UnsupportedOperationException op java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) op KeySetDemo.main (KeySetDemo.java:20) Proces voltooid met afsluitcode 1
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION