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)
تستخدم لإضافة عنصر جديد في الكائن الذي قام باستدعائها مع تحديد مفتاح الوصول إليه و قيمته.
|
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
.
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}