CodeGym /Java blogg /Slumpmässig /Hur man använder keySet-metoden i java.util.Map
John Squirrels
Nivå
San Francisco

Hur man använder keySet-metoden i java.util.Map

Publicerad i gruppen
Om du behöver få alla nycklar som din karta innehåller kan du använda den väldigt praktiska metoden java.util.HashMap.keySet() . I den här artikeln kommer vi att förklara hur det fungerar. Som du vet implementerar HashMap- klassen Map- gränssnittet, så i exemplen kommer vi att använda metoden HashMap keySet() .

HashMap keySet() metodsignatur och funktionsprincip

Set<K> keySet() -metoden returnerar en Set- vy av nycklarna som finns i den här kartan. Funktionen i denna Set-samling, som behåller nycklarna, är att det inte kan finnas dubbletter av element i den. Uppsättningen stöds av kartan. Det betyder att om något har ändrats i kartan så återspeglas det i uppsättningen och vice versa. Du kan till exempel ta bort objekt från denna uppsättning, och nycklarna och deras motsvarande värden tas automatiskt bort från kartan, men du kan inte lägga till nya objekt i den.

HashMap keySet() exempel

Låt oss skapa en HashMap med namnen på våra vänner och deras digitala nycklar och sedan skriva ut Set of the keys med hjälp av 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);
Utgången är:
kartans nycklar: [1, 2, 3, 4, 5]
Förutom java.util.HashMap.keySet() -metoden i Java finns det en entrySet()- metod, den returnerar också en Set , men denna uppsättning innehåller nyckel-värdepar. Här är ett exempel med metoderna både java.util.HashMap.keySet() och 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());
       }
   }
}
Här är utgången:
kartans nycklar: [1, 2, 3, 4, 5] nycklar och kartans värden: 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
Låt oss nu försöka ta bort ett element från keySet och se till att det påverkar vår ursprungliga 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);
   }
}
Utgången är:
nycklar på kartan: [1, 2, 3, 4, 5] myHashMap efter att ha tagit bort ett element från myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} kartans nycklar: [1, 2 , 3, 5]
Som du kan se tog vi bort en nyckel "4" från setet, och det resulterade i att ett par "4-Alex" togs bort från vår HashMap . Låt oss nu försöka lägga till en nyckel till 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 det här fallet får vi ett undantag, eftersom vår keySet är ansluten till vår hashMap :
kartans nycklar: [1, 2, 3, 4, 5] Undantag i tråden "main" java.lang.UnsupportedOperationException på java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) på KeySetDemo.main (KeySetDemo.java:20) Processen avslutad med utgångskod 1
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION