CodeGym /Java блог /Случаен /Как да използвате метода keySet в java.util.Map
John Squirrels
Ниво
San Francisco

Как да използвате метода keySet в java.util.Map

Публикувано в групата
Ако трябва да получите всички ключове, които вашата карта съдържа, можете да използвате наистина удобния метод java.util.HashMap.keySet() . В тази статия ще обясним How работи. Както знаете, класът HashMap имплементира интерфейса Map , така че в примерите ще използваме метода HashMap keySet() .

Подпис на метода HashMap keySet() и принцип на работа

Методът Set<K> keySet() връща изглед Set на ключовете, които се съдържат в тази карта. Характеристиката на тази колекция Set, която пази ключовете, е, че в нея не може да има дублиращи се елементи. Комплектът е подкрепен от картата. Това означава, че ако нещо е променено в картата, то се отразява в комплекта и обратно. Например, можете да премахвате елементи от този набор и ключовете и съответните им стойности автоматично се премахват от картата, но не можете да добавяте нови елементи в него.

HashMap keySet() примери

Нека създадем HashMap с имената на нашите приятели и техните цифрови ключове и след това да отпечатаме набора от ключове, използвайки метода 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);
Резултатът е:
ключове на картата: [1, 2, 3, 4, 5]
Освен метода java.util.HashMap.keySet() в Java има метод entrySet() , той също връща Set , но този набор съдържа двойки ключ-стойност. Ето пример с двата метода java.util.HashMap.keySet() и 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());
       }
   }
}
Ето резултата:
ключове на картата: [1, 2, 3, 4, 5] ключове и стойности на картата: 1 : Джон 2 : Айви 3 : Рики 4 : Андрю 5 : Алекс
Сега нека се опитаме да премахнем елемент от keySet и да се уверим, че засяга нашия оригинален 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);
   }
}
Резултатът е:
ключове на картата: [1, 2, 3, 4, 5] myHashMap след премахване на елемент от myKeySet: {1=Джон, 2=Айви, 3=Рики, 5=Алекс} ключове на картата: [1, 2 , 3, 5]
Както можете да видите, премахнахме ключ „4“ от Set и това доведе до премахване на двойка „4-Alex“ от нашата 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("keys of the map: " + myKeySet);
       myKeySet.add(7);

   }
}
В този случай ще получим изключение, защото нашият keySet е свързан с нашия hashMap :
ключове на картата: [1, 2, 3, 4, 5] Изключение в нишката "main" java.lang.UnsupportedOperationException в java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) в KeySetDemo.main (KeySetDemo.java:20) Процесът завърши с изходен code 1
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION