CodeGym /Java blog /Tilfældig /Sådan bruger du keySet-metoden i java.util.Map
John Squirrels
Niveau
San Francisco

Sådan bruger du keySet-metoden i java.util.Map

Udgivet i gruppen
Hvis du har brug for at få alle de nøgler, som dit kort indeholder, kan du bruge den virkelig praktiske java.util.HashMap.keySet() metode. I denne artikel vil vi forklare, hvordan det fungerer. Som du ved, implementerer HashMap- klassen Map- grænsefladen, så i eksemplerne skal vi bruge HashMap keySet()- metoden.

HashMap keySet() metodesignatur og driftsprincip

Set<K> keySet() -metoden returnerer en Set- visning af de nøgler, der er indeholdt i dette kort. Funktionen ved denne sæt-samling, der beholder nøglerne, er, at der ikke kan være duplikerede elementer i den. Sættet understøttes af kortet. Det betyder, at hvis noget blev ændret på kortet, afspejles det i sættet og omvendt. For eksempel kan du fjerne elementer fra dette sæt, og nøglerne og deres tilsvarende værdier fjernes automatisk fra kortet, men du kan ikke tilføje nye elementer i det.

HashMap keySet() eksempler

Lad os oprette et HashMap med navne på vores venner og deres digitale nøgler og derefter udskrive sættet af nøgler ved hjælp af HashMap keySet() metoden.

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);
Udgangen er:
nøgler på kortet: [1, 2, 3, 4, 5]
Udover java.util.HashMap.keySet() -metoden i Java er der en entrySet()- metode, den returnerer også et Set , men dette sæt indeholder nøgle-værdi-par. Her er et eksempel med både java.util.HashMap.keySet() og java.util.HashMap.entrySet() metoder:

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());
       }
   }
}
Her er outputtet:
nøgler på kortet: [1, 2, 3, 4, 5] nøgler og værdier på kortet: 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
Lad os nu prøve at fjerne et element fra keySet og sikre os, at det påvirker vores originale 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);
   }
}
Udgangen er:
taster på kortet: [1, 2, 3, 4, 5] myHashMap efter at have fjernet et element fra myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} taster på kortet: [1, 2 , 3, 5]
Som du kan se, fjernede vi en nøgle "4" fra sættet , og det resulterede i at fjerne et par "4-Alex" fra vores HashMap . Lad os nu prøve at tilføje en nøgle til 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);

   }
}
I dette tilfælde får vi en undtagelse, fordi vores nøglesæt er forbundet til vores hashMap :
nøgler på kortet: [1, 2, 3, 4, 5] Undtagelse i tråden "main" java.lang.UnsupportedOperationException på java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) på KeySetDemo.main (KeySetDemo.java:20) Processen afsluttet med afslutningskode 1
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION