ما هو Hashmap في جافا؟ شرح مع أمثلة

نشرت: 2021-07-02

HashMap هي فئة تجميع في Java. يمكنك استخدامه لتخزين أزواج المفاتيح والقيمة. يعتمد أدائها على السعة الأولية وعامل الحمولة. يحتوي HashMap على طرق مختلفة تسمح لك باستخدام بنية بيانات جدول التجزئة.

في المقالة التالية ، سوف نستكشف ماهية HashMap ونتعرف على منشئيها المختلفين من خلال الأمثلة.

جدول المحتويات

ما هو HashMap؟

HashMap عبارة عن فئة تجميع تعتمد على الخريطة. نستخدمها لتخزين أزواج المفاتيح والقيمة. أنت تدل على HashMap Java كـ HashMap <K ، V> ، حيث يرمز K إلى Key و V إلى القيمة.

HashMap مشابه لفئة Hashtable. الفرق بين الاثنين هو أن HashMap غير متزامن بينما Hashtable ليس كذلك. أيضًا ، بخلاف Hashtable ، يسمح HashMap بالقيم الفارغة والمفتاح الفارغ.

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

يمنحك HashMap تنفيذًا بسيطًا لواجهة خريطة Java. يمكنك الوصول إلى أزواج المفتاح والقيمة التي تخزنها من خلال HashMap باستخدام فهرس من نوع آخر (مثل عدد صحيح). ضع في اعتبارك أنه إذا كنت تستخدم مفتاحًا مكررًا ، فإنه يحل محل عنصر المفتاح ذي الصلة. أيضا ، يمكنك فقط استخدام كائن مفتاح واحد فارغ ؛ ومع ذلك ، يمكن أن يكون هناك أي عدد من القيم الخالية.

HashMap تنفذ واجهات Cloneable و Serializable و Map <K، V>. إنه يمتد إلى فئة AbstractMap <K، V> ، والفئات الفرعية المباشرة الخاصة به هي PrinterStateReasons و LinkedHashMap.

ميزات HashMap

فيما يلي الميزات الأساسية في HashMap:

  • وهو أحد مكونات java.util.package.
  • يمكنك استخدام قيم مكررة ، لكن HashMap لا يسمح بالمفاتيح المكررة. هذا يعني أنه لا يمكن أن يكون لمفتاح واحد قيم متعددة ، ولكن يمكن أن يكون للمفاتيح المتعددة قيمة واحدة.
  • يمكنك استخدام مفاتيح فارغة مرة واحدة فقط ، ولكن يمكنك استخدام قيم فارغة مختلفة.
  • لا تقدم HashMap أي ضمانات بخصوص ترتيب الخريطة. لذلك ، لا يضمن بقاء الأمر ثابتًا.
  • يشبه HashMap إلى حد كبير Hashtable ، مع الاختلاف الوحيد هو أن HashMap غير متزامن.
  • HashMap تنفذ واجهة تسلسلية و Cloneable.

منشئي HashMap

هناك أربعة منشئات في HashMap:

1. HashMap ()

HashMap () هو المُنشئ الافتراضي الذي ينشئ مثيلًا بعامل تحميل يبلغ 0.75 وسعة أولية تبلغ 16.

مثال :

// إظهار كيفية عمل مُنشئ HashMap ()

استيراد java.io. * ؛

استيراد java.util. * ؛

فئة AddElementsToHashMap {

الرئيسية العامة الثابتة الفراغ (سلاسل سلسلة [])

{

// ليس عليك ذكر

// النوع العام مرتين

HashMap <عدد صحيح ، سلسلة> hm1 = new HashMap <> () ؛

// استخدام Generics لتهيئة HashMap

HashMap <عدد صحيح ، سلسلة> hm2

= HashMap جديد <عدد صحيح ، سلسلة> () ؛

// استخدم طريقة الوضع لإضافة أي عنصر

hm1.put (1، "A") ؛

hm1.put (2، "B") ؛

hm1.put (3، "C") ؛

hm2.put (4، “D”) ؛

hm2.put (5، "E") ؛

hm2.put (6، "F") ؛

System.out.println ("نتائج hm1 هي:"

+ hm1) ؛

System.out.println ("نتائج HashMap hm2 هي:"

+ hm2) ؛

}

}

الإخراج :

نتائج hm1 هي: {1 = A ، 2 = B ، 3 = C}

نتائج hm2 هي: {4 = D، 5 = E، 6 = F}

2. HashMap (int initialCapacity)

HashMap (int initialCapacity) ستنشئ مثيلًا بتحميل 0.75 وسعة أولية محددة.

مثال :

// عرض كيفية عمل مُنشئ HashMap (int initialCapacity)

استيراد java.io. * ؛

استيراد java.util. * ؛

فئة AddElementsToHashMap {

الرئيسية العامة الثابتة الفراغ (سلاسل سلسلة [])

{

// ليس عليك ذكر

// النوع العام مرتين

HashMap <عدد صحيح ، سلسلة> hm1 = new HashMap <> (10) ؛

// استخدام Generics لتهيئة HashMap

HashMap <عدد صحيح ، سلسلة> hm2

= HashMap جديد <عدد صحيح ، سلسلة> (2) ؛

// استخدم طريقة الوضع لإضافة أي عنصر

hm1.put (1، "A") ؛

hm1.put (2، "B") ؛

hm1.put (3، "C") ؛

hm2.put (4، “D”) ؛

hm2.put (5، "E") ؛

hm2.put (6، "F") ؛

System.out.println ("نتائج hm1 هي:"

+ hm1) ؛

System.out.println ("نتائج HashMap hm2 هي:"

+ hm2) ؛

}

}

الإخراج :

نتائج hm1 هي: {1 = A ، 2 = B ، 3 = C}

نتائج hm2 هي: {4 = D، 5 = E، 6 = F}

3. HashMap (int initialCapacity ، float loadFactor)

ينشئ HashMap (int initialCapacity ، float loadFactor) مثيلًا بعامل تحميل محدد وسعة أولية.

مثال :

// يوضح كيفية عمل مُنشئ HashMap (int initialCapacity ، float loadFactor)

استيراد java.io. * ؛

استيراد java.util. * ؛

فئة AddElementsToHashMap {

الرئيسية العامة الثابتة الفراغ (سلاسل سلسلة [])

{

// ليس عليك ذكر

// النوع العام مرتين

HashMap <عدد صحيح ، سلسلة> hm1

= خريطة HashMap جديدة <> (5، 0.75f) ؛

// استخدام Generics لتهيئة HashMap

HashMap <عدد صحيح ، سلسلة> hm2

= HashMap جديد <عدد صحيح ، سلسلة> (3 ، 0.5f) ؛

// استخدم طريقة الوضع لإضافة العناصر

hm1.put (1، "A") ؛

hm1.put (2، "B") ؛

hm1.put (3، "C") ؛

hm2.put (4، “D”) ؛

hm2.put (5، "E") ؛

hm2.put (6، "F") ؛

System.out.println ("نتائج hm1 هي:"

+ hm1) ؛

System.out.println ("نتائج HashMap hm2 هي:"

+ hm2) ؛

}

}

الإخراج :

نتائج hm1 هي: {1 = A ، 2 = B ، 3 = C}

نتائج hm2 هي: {4 = D، 5 = E، 6 = F}

4. HashMap (خريطة الخريطة)

HashMap (خريطة الخريطة) ستنشئ مثيلًا بنفس التعيينات مثل الخريطة التي تحددها.

مثال :

// يوضح كيفية عمل مُنشئ HashMap (خريطة الخريطة)

استيراد java.io. * ؛

استيراد java.util. * ؛

فئة AddElementsToHashMap {

الرئيسية العامة الثابتة الفراغ (سلاسل سلسلة [])

{

// ليس عليك ذكر

// النوع العام مرتين

الخريطة <عدد صحيح ، سلسلة> hm1 = new HashMap <> () ؛

// استخدام Generics لتهيئة HashMap

HashMap <عدد صحيح ، سلسلة> hm2

= خريطة HashMap جديدة <عدد صحيح ، سلسلة> (hml) ؛

// استخدم طريقة الوضع لإضافة أي عنصر

hm1.put (1، "A") ؛

hm1.put (2، "B") ؛

hm1.put (3، "C") ؛

hm2.put (4، “D”) ؛

hm2.put (5، "E") ؛

hm2.put (6، "F") ؛

System.out.println ("نتائج hm1 هي:"

+ hm1) ؛

System.out.println ("نتائج HashMap hm2 هي:"

+ hm2) ؛

}

}

الإخراج :

نتائج hm1 هي: {1 = A ، 2 = B ، 3 = C}

نتائج hm2 هي: {4 = D، 5 = E، 6 = F}

تعرف على المزيد حول Java

تحتوي Java على العديد من الفئات بخلاف HashMap. يعد التعرف على التفاصيل الدقيقة لكل فئة من هذه الفئات واستخداماتها وتكاملها في Java بنفسك أمرًا صعبًا للغاية. أفضل طريقة للقيام بهذه العملية هي أخذ دورة في علوم الكمبيوتر.

سيمكنك أخذ دورة احترافية من إتقان المهارات والمفاهيم اللازمة من خلال منهج منظم. علاوة على ذلك ، تقدم هذه الدورات تجربة تعليمية غامرة يتم تسهيلها من خلال مقاطع الفيديو والجلسات الحية والمحاضرات عبر الإنترنت التي تسهل عليك فهم الأساسيات النظرية.

يمكنك التحقق من برنامج ماجستير العلوم في علوم الكمبيوتر الذي نقدمه بالاشتراك مع LJMU (جامعة ليفربول جون مورس ، المملكة المتحدة) و IIIT-B (المعهد الدولي لتكنولوجيا المعلومات ، الهند). تغطي الدورة أكثر من 500 ساعة من المحتوى ، وأكثر من 10 محاضرات حية ، وأكثر من 30 دراسة حالة.

تعد هذه الدورة التي تبلغ مدتها 19 شهرًا بتجربة تعليمية عالمية ذات قيمة عالية. تكمن أكبر قيمة مضافة في حقيقة أنه يمكنك التواصل والتفاعل مع أقرانك من جميع أنحاء العالم. تفتخر upGrad بوجود أكثر من 40.000 متعلم عالمي مدفوع الأجر منتشرين في أكثر من 85 دولة. نتيجة لذلك ، تتعرض لثقافات جديدة وآراء جديدة ووجهات نظر جديدة توسع نظرتك العامة. ليس ذلك فحسب ، بل يتم تدريبك على أيدي موجهين خبراء من جامعة جون مورس بليفربول و IIIT-B الذين يقدمون مساعدة مخصصة ومخصصة للمساعدة في حل شكوكك.

إلى جانب هذه المزايا ، سيوفر لك هذا البرنامج مساعدة مهنية بزاوية 360 درجة تشمل الإرشاد الصناعي وفرص التواصل وغير ذلك الكثير.

خاتمة

في هذه المقالة ، تعلمنا ماهية HashMap ، ومنشئيها المختلفين ، وكيف يمكنك تنفيذها من خلال الأمثلة. يحتوي HashMap على الكثير من التطبيقات في Java - يمكنك استخدام HashMap لإضافة عناصر وإزالتها وإدارتها كما هو مطلوب.

ما هي أفكارك حول هذا الدليل على HashMap؟ شاركهم في قسم التعليقات أدناه.

اصقل مهاراتك واستعد للمستقبل

تقدم الآن بطلب للحصول على دورة هندسة البرمجيات من جامعة جون مورس بليفربول