Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Javaالإنترفيس Map في جافا

  • مقدمة
  • دوال الإنترفيس Map
  • مثال شامل

مقدمة

الإنترفيس Map يتيح لك تخزين العناصر بشكل Key / Value.
هنا كل عنصر يتم تخزينه يملك كائنين: الأول عبارة عن مفتاح ( key ) و الثاني عبارة قيمة ( value ).

للوصول إلى أي عنصر, سواء لحذفه أو إعطائه قيمة جديدة نستخدم المفتاح له.


نظرة عامة

  • بشكل عام, يستخدم لتخزين العناصر بشكل Key / Value.
  • يمكن للمفاتيح المختلفة أن تحتوي على نفس القيمة.
  • بعض الدوال التي يملكها ترمي الإستثناء UnsupportedOperationException إذا تم استخدامهم بطريقة خاطئة.
  • يرمى الإستثناء ClassCastException في حال كان لا يمكن تحويل نوع الكائن إلى نوع آخر.
  • يرمى الإستثناء NullPointerException في حال تم إضافة القيمة null فيه لأنه لا يقبل القيمة null.
  • يرمى الإستثناء NoSuchElementException في حال كان كائن الـ Map فارغاً و كنت تحاول إرجاع قيمة عنصر من عناصره.

دوال الإنترفيس Map

الجدول التالي يحتوي على دوال الإنترفيس Map.

الدالة مع تعريفها
1 public void clear() تمسح جميع العناصر الموجودة في الكائن الذي قام باستدعائها.
2 public boolean containsKey(Object key) ترجع true إذا كان الكائن الذي قام باستدعائها يحتوي على الكائن key الذي نضعه لها كـ Argument كمفتاح فيه.
3 public boolean containsValue(Object value) ترجع true إذا كان الكائن الذي قام باستدعائها يحتوي على الكائن value الذي نضعه لها كـ Argument كقيمة فيه.
4 public boolean equals(Object obj) ترجع true في حال كان الكائن الذي قام باستدعائها يتطابق مع الكائن الذي نمرره لها كـ Argument.
5 public Object get(Object key) ترجع قيمة المفتاح الذي نمرره لها كـ Argument.
في حال كان كائن الكائن الذي قام باستدعائها لا يحتوي على المفتاح الذي مررناه لها, ترجع القيمة null.
6 public int hashCode() ترجع الـ Hash Code للكائن الذي قام باستدعائها.
7 public boolean isEmpty() ترجع true في حال كان الكائن الذي قام باستدعائها فارغاً.
8 public Set keySet() ترجع كائن نوعه Set يحتوي على جميع مفاتيح الكائن الذي قام باستدعائها.
9 public Object put(Object key, Object value) تستخدم لإضافة عنصر جديد في الكائن الذي قام باستدعائها مع تحديد مفتاح الوصول إليه و قيمته.
  • key هو كائن يمثل مفتاح العنصر.
  • value هو كائن يمثل قيمة العنصر.
10 public void putAll(Map m) تضيف جميع عناصر الكائن m الذي نمرره لها كـ Argument في الكائن الذي قام باستدعائها.
11 public Object remove(Object key) تحذف العنصر الذي يملك المفتاح الذي نمرره لها كـ Argument.
12 public int size() ترجع عدد العناصر الموجودة في الكائن الذي قام باستدعائها.
13 public Collection values() ترجع كائن نوعه Collection يحتوي على جميع قيم الكائن الذي قام باستدعائها.

مثال شامل

في المثال التالي قمنا بإنشاء ثلاث كائنات من ثلاث كلاسات مختلفة ترث من الإنترفيس Map.
لاحظ أننا استخدمنا الدالة put() التي ورثتها الكائنات في الأساس من الإنترفيس Map.


Main.java
import java.util.Map;
import java.util.TreeMap;
import java.util.HashMap;
import java.util.LinkedHashMap;
 
public class Main {
 
    public static void main(String[] args) {
 
        // وضعنا فيه ثلاث عناصر m1 إسمه TreeMap هنا قمنا بإنشاء كائن من الكلاس
        Map m1 = new TreeMap();
        m1.put(1, "Ayoub");
        m1.put(2, "Salem");
        m1.put(3, "Rayan");
 
        // وضعنا فيه ثلاث عناصر m2 إسمه HashMap هنا قمنا بإنشاء كائن من الكلاس
        Map m2 = new HashMap();
        m2.put(1, "Mona");
        m2.put(2, "Rima");
        m2.put(3, "Hana");
 
        // وضعنا فيه ثلاث عناصر m3 إسمه LinkedHashMap هنا قمنا بإنشاء كائن من الكلاس
        Map m3 = new LinkedHashMap();
        m3.put(1, "Jhony");
        m3.put(2, "Ahmad");
        m3.put(3, "Jihad");
 
        // m3 و m2 و m1 هنا قمنا بعرض محتويات الكائنات
        System.out.println("TreeMap keys/values:       " + m1);
        System.out.println("HashMap keys/values:       " + m2);
        System.out.println("LinkedHashMap keys/values: " + m3);
 
    }
 
}

سنحصل على النتيجة التالية عند التشغيل.

TreeMap keys/values:       {1=Ayoub, 2=Salem, 3=Rayan}
HashMap keys/values:       {1=Mona, 2=Rima, 3=Hana}
LinkedHashMap keys/values: {1=Jhony, 2=Ahmad, 3=Jihad}