CodeGym /Java blog /Véletlen /A keySet metódus használata a java.util.Map fájlban
John Squirrels
Szint
San Francisco

A keySet metódus használata a java.util.Map fájlban

Megjelent a csoportban
Ha minden kulcsot meg kell szereznie, amit a térkép tartalmaz, használhatja az igazán praktikus java.util.HashMap.keySet() metódust. Ebben a cikkben elmagyarázzuk, hogyan működik. Mint tudják, a HashMap osztály megvalósítja a Map interfészt, ezért a példákban a HashMap keySet() metódust fogjuk használni .

HashMap keySet() metódus aláírása és működési elve

A Set<K> keySet() metódus az ezen a térképen található kulcsok halmaznézetét adja vissza. Ennek a kulcsokat őrző Set gyűjteménynek az a jellemzője, hogy nem lehetnek benne duplikált elemek. A készlet mögött a térkép áll. Ez azt jelenti, hogy ha valamit megváltoztattak a térképen, az tükröződik a készletben, és fordítva. Például eltávolíthat elemeket ebből a készletből, és a kulcsok és a hozzájuk tartozó értékek automatikusan eltávolításra kerülnek a térképről, de új elemeket nem adhat hozzá.

HashMap keySet() példák

Hozzunk létre egy HashMap-et barátaink nevével és digitális kulcsaikkal, majd nyomtassuk ki a kulcskészletet a HashMap keySet() metódussal .

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);
A kimenet a következő:
a térkép gombjai: [1, 2, 3, 4, 5]
A Java-ban a java.util.HashMap.keySet() metódus mellett létezik egy entrySet() metódus, amely szintén egy Set-et ad vissza , de ez a halmaz kulcs-érték párokat tartalmaz. Íme egy példa a java.util.HashMap.keySet() és a java.util.HashMap.entrySet() metódusokra:

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());
       }
   }
}
Íme a kimenet:
a térkép billentyűi: [1, 2, 3, 4, 5] a térkép billentyűi és értékei: 1 : János 2 : Ivy 3 : Ricky 4: András 5 : Alex
Most próbáljunk meg eltávolítani egy elemet a keySet -ből , és győződjön meg arról, hogy hatással van az eredeti HashMap- re .

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);
   }
}
A kimenet a következő:
a térkép billentyűi: [1, 2, 3, 4, 5] myHashMap, miután eltávolított egy elemet a myKeySetből: {1=John, 2=Ivy, 3=Ricky, 5=Alex} a térkép billentyűi: [1, 2 , 3, 5]
Amint látja, eltávolítottunk egy „4” kulcsot a készletből , és ennek eredményeként eltávolítottuk a „4-Alex” párt a HashMap -ünkről . Most próbáljunk meg egy kulcsot hozzáadni a keySet()- hez :

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

   }
}
Ebben az esetben kivételt kapunk, mert a kulcskészletünk a hashMap- ünkhöz kapcsolódik :
a térkép kulcsai: [1, 2, 3, 4, 5] Kivétel a "main" szálban java.lang.UnsupportedOperationException itt: java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) itt: KeySetDemo.main (KeySetDemo.java:20) A folyamat az 1-es kilépési kóddal befejeződött
Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION