CodeGym /Java-blogg /Tilfeldig /Hvordan bruke keySet-metoden i java.util.Map
John Squirrels
Nivå
San Francisco

Hvordan bruke keySet-metoden i java.util.Map

Publisert i gruppen
Hvis du trenger å få alle nøklene som kartet inneholder, kan du bruke den veldig hendige java.util.HashMap.keySet()- metoden. I denne artikkelen vil vi forklare hvordan det fungerer. Som du vet implementerer HashMap- klassen Map- grensesnittet, så i eksemplene skal vi bruke HashMap keySet()- metoden.

HashMap keySet() metodesignatur og driftsprinsipp

Set<K> keySet() -metoden returnerer en Set- visning av nøklene som finnes i dette kartet. Funksjonen til denne Set-samlingen, som beholder nøklene, er at det ikke kan være dupliserte elementer i den. Settet støttes av kartet. Det betyr at hvis noe ble endret i kartet, reflekteres det i settet, og omvendt. Du kan for eksempel fjerne elementer fra dette settet, og nøklene og deres tilsvarende verdier fjernes automatisk fra kartet, men du kan ikke legge til nye elementer i det.

HashMap keySet() eksempler

La oss lage et HashMap med navn på vennene våre og deres digitale nøkler og deretter skrive ut settet med nøkler ved å bruke 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);
Utgangen er:
nøkler på kartet: [1, 2, 3, 4, 5]
I tillegg til java.util.HashMap.keySet() -metoden i Java er det en entrySet()- metode, den returnerer også et Set , men dette settet inneholder nøkkelverdi-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 utgangen:
nøkler på kartet: [1, 2, 3, 4, 5] nøkler og verdier på kartet: 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
La oss nå prøve å fjerne et element fra keySet og sørge for at det påvirker vår 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);
   }
}
Utgangen er:
nøkler på kartet: [1, 2, 3, 4, 5] myHashMap etter å ha fjernet et element fra myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} nøkler på kartet: [1, 2 , 3, 5]
Som du kan se, fjernet vi en nøkkel "4" fra settet , og det resulterte i å fjerne et par "4-Alex" fra vår HashMap . La oss nå prøve å legge til en nøkkel 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 tilfellet får vi et unntak, fordi nøkkelsettet vårt er koblet til hashMap :
nøkler på kartet: [1, 2, 3, 4, 5] Unntak i tråden "main" java.lang.UnsupportedOperationException på java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) på KeySetDemo.main (KeySetDemo.java:20) Prosessen fullført med utgangskode 1
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION