CodeGym /مدونة جافا /Random-AR /كيفية استخدام طريقة keySet في java.util.Map
John Squirrels
مستوى
San Francisco

كيفية استخدام طريقة keySet في java.util.Map

نشرت في المجموعة
إذا كنت بحاجة إلى الحصول على جميع المفاتيح التي تحتوي عليها خريطتك ، فيمكنك استخدام طريقة java.util.HashMap.keySet() المفيدة حقًا . وفي هذه المقالة سنشرح كيفية عمله. كما تعلم، تقوم فئة HashMap بتنفيذ واجهة الخريطة ، لذلك سنستخدم في الأمثلة طريقة HashMap keySet() .

توقيع طريقة HashMap keySet () ومبدأ التشغيل

تقوم طريقة Set<K> keySet() بإرجاع طريقة عرض 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، توجد طريقة inputSet() ، وهي تُرجع أيضًا 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=John, 2=Ivy, 3=Ricky, 5=Alex} مفاتيح الخريطة: [1, 2 ، 3، 5]
كما ترون، قمنا بإزالة المفتاح "4" من المجموعة ، مما أدى إلى إزالة الزوج "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);

   }
}
في هذه الحالة، سنحصل على استثناء، لأن مجموعة المفاتيح الخاصة بنا متصلة بخريطة التجزئة الخاصة بنا :
مفاتيح الخريطة: [1، 2، 3، 4، 5] استثناء في مؤشر الترابط "الرئيسي" java.lang.UnsupportedOperationException في java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) في KeySetDemo.main (KeySetDemo.java:20) انتهت العملية برمز الخروج 1
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION