CodeGym /Blog Java /Aleatoriu /Cum se utilizează metoda keySet în java.util.Map
John Squirrels
Nivel
San Francisco

Cum se utilizează metoda keySet în java.util.Map

Publicat în grup
Dacă trebuie să obțineți toate cheile pe care le conține harta dvs. , puteți utiliza metoda java.util.HashMap.keySet() foarte la îndemână . În acest articol, vom explica cum funcționează. După cum știți, clasa HashMap implementează interfața Map , așa că în exemple vom folosi metoda HashMap keySet() .

Semnătura metodei HashMap keySet() și principiul de funcționare

Metoda Set<K> keySet() returnează o vizualizare Set a cheilor care sunt conținute în această hartă. Caracteristica acestei colecții Set, care păstrează cheile, este că nu pot exista elemente duplicat în ea. Setul este susținut de hartă. Asta înseamnă că, dacă ceva a fost schimbat în hartă, se reflectă în set și invers. De exemplu, puteți elimina elemente din acest set, iar cheile și valorile lor corespunzătoare sunt eliminate automat de pe hartă, dar nu puteți adăuga elemente noi în el.

Exemple HashMap keySet().

Să creăm un HashMap cu numele prietenilor noștri și cheile lor digitale și apoi să tipărim setul de chei folosind metoda HashMap 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("myKeySet of the map: "+myKeySet);
Ieșirea este:
tastele hărții: [1, 2, 3, 4, 5]
Pe lângă metoda java.util.HashMap.keySet() în Java există o metodă entrySet() , returnează și un Set , dar acest set conține perechi cheie-valoare. Iată un exemplu cu ambele metode java.util.HashMap.keySet() și 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());
       }
   }
}
Iată rezultatul:
cheile hărții: [1, 2, 3, 4, 5] cheile și valorile hărții: 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
Acum să încercăm să eliminăm un element din keySet și să ne asigurăm că afectează HashMap- ul nostru original .

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);
   }
}
Ieșirea este:
cheile hărții: [1, 2, 3, 4, 5] myHashMap după eliminarea unui element din myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} cheile hărții: [1, 2 , 3, 5]
După cum puteți vedea, am eliminat o cheie „4” din set și a dus la eliminarea unei perechi „4-Alex” din HashMap . Acum să încercăm să adăugăm o cheie la 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);

   }
}
În acest caz, vom obține o excepție, deoarece setul nostru de chei este conectat la hashMap :
cheile hărții: [1, 2, 3, 4, 5] Excepție în firul „principal” java.lang.UnsupportedOperationException la java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) la KeySetDemo.main (KeySetDemo.java:20) Procesul s-a încheiat cu codul de ieșire 1
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION