CodeGym /Blog Java /Random-FR /Comment utiliser la méthode keySet dans java.util.Map
Auteur
Vasyl Malik
Senior Java Developer at CodeGym

Comment utiliser la méthode keySet dans java.util.Map

Publié dans le groupe Random-FR
Si vous avez besoin d'obtenir toutes les clés que contient votre carte , vous pouvez utiliser la méthode très pratique java.util.HashMap.keySet() . Dans cet article, nous allons vous expliquer comment cela fonctionne. Comme vous le savez, la classe HashMap implémente l'interface Map , donc dans les exemples nous allons utiliser la méthode HashMap keySet().

Signature et principe de fonctionnement de la méthode HashMap keySet()

La méthode Set<K> keySet() renvoie une vue Set des clés contenues dans cette carte. La particularité de cette collection Set, qui conserve les clés, est qu'elle ne peut pas contenir d'éléments en double. L'ensemble est adossé à la carte. Cela signifie que si quelque chose a été modifié dans la carte, cela se reflète dans l'ensemble, et vice-versa. Par exemple, vous pouvez supprimer des éléments de cet ensemble, et les clés et leurs valeurs correspondantes sont automatiquement supprimées de la carte, mais vous ne pouvez pas y ajouter de nouveaux éléments.

Exemples de HashMap keySet()

Créons un HashMap avec les noms de nos amis et leurs clés numériques, puis imprimons l' ensemble des clés à l'aide de la méthode 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);
La sortie est:
touches de la carte : [1, 2, 3, 4, 5]
Outre la méthode java.util.HashMap.keySet() en Java, il existe une méthode entrySet() , elle renvoie également un Set , mais cet ensemble contient des paires clé-valeur. Voici un exemple avec les méthodes java.util.HashMap.keySet() et 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());
       }
   }
}
Voici la sortie:
clés de la carte : [1, 2, 3, 4, 5] clés et valeurs de la carte : 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
Essayons maintenant de supprimer un élément du keySet et assurons-nous qu'il affecte notre HashMap d'origine .

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);
   }
}
La sortie est:
clés de la carte : [1, 2, 3, 4, 5] myHashMap après suppression d'un élément de myKeySet : {1=John, 2=Ivy, 3=Ricky, 5=Alex} clés de la carte : [1, 2 , 3, 5]
Comme vous pouvez le voir, nous avons supprimé une clé « 4 » du Set , et cela a entraîné la suppression d'une paire « 4-Alex » de notre HashMap . Essayons maintenant d'ajouter une clé à 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);

   }
}
Dans ce cas, nous aurons une exception, car notre keySet est connecté à notre hashMap :
clés de la carte : [1, 2, 3, 4, 5] Exception dans le thread "main" java.lang.UnsupportedOperationException à java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) à KeySetDemo.main (KeySetDemo.java:20) Processus terminé avec le code de sortie 1
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION