الفرق الرئيسي - HashMap مقابل TreeMap
في البرمجة ، هناك آليات مختلفة لجمع البيانات. المجموعات هي إحدى طرق تخزين البيانات. لغات البرمجة مثل Java تستخدم المجموعات. إنه إطار عمل به فئات وواجهات لتخزين ومعالجة مجموعة من عناصر البيانات. في المصفوفة العادية ، يوجد عدد ثابت من العناصر للتخزين. هذا هو وجود قيود على المصفوفات. بدلاً من ذلك ، يمكن للمبرمج استخدام المجموعات. يمكن إجراء عمليات مثل الإدراج والحذف والفرز والبحث باستخدام المجموعات. في Java ، تنتمي واجهة الخريطة إلى المجموعات. تُستخدم الخريطة لتمثيل البيانات في أزواج المفتاح والقيمة.لا يوجد سوى مفاتيح فريدة ، ولكل منها قيمة مقابلة. HashMap و TreeMap عبارة عن فئات تقوم بتنفيذ واجهة الخريطة. HashMap عبارة عن فئة تجميع تستند إلى الخريطة تُستخدم لتخزين أزواج المفاتيح والقيمة التي لا تحتفظ بترتيب معين في عناصر البيانات. إن TreeMap عبارة عن فئة تجميع تستند إلى الخريطة تُستخدم لتخزين أزواج المفاتيح والقيمة التي تحافظ على الترتيب التصاعدي لعناصر البيانات. يتمثل الاختلاف الرئيسي بين HashMap و TreeMap في أن HashMap لا يحتفظ بترتيب معين في عناصر البيانات بينما يحتفظ TreeMap بالترتيب التصاعدي لعناصر البيانات.
ما هي HashMap؟
HashMap هي فئة تنفذ واجهة الخريطة. يقوم بتوسيع فئة AbstractMap وتنفيذ واجهة Map. يحتوي HashMap على أزواج المفتاح والقيمة. كل عنصر فريد من نوعه. من السهل العثور على العناصر في HashMap باستخدام المفتاح. إعلان HashMap كما يلي.
فئة عامة HashMap توسع AbstractMap تنفذ Map ، Cloneable ، Serializable
يشير K إلى المفتاح بينما يشير V إلى القيمة المقابلة لهذا المفتاح المحدد. كل مفتاح ، زوج قيم هو إدخال في HashMap.
الشكل 01: واجهة الخريطة
افترض سيناريو كالتالي لفهم خريطة HaspMap. إذا أراد المبرمج تخزين مجموعة من أسماء الطلاب وأرقام الفهرس المقابلة ، فيمكنه استخدام HashMap. يتم استخدام أسماء الطلاب للعثور على أرقام الفهرس. لذلك ، أسماء الطلاب هي المفاتيح بينما أرقام الفهرس هي القيم.
الشكل 02: برنامج HashMap باستخدام Java
وفقًا للبرنامج أعلاه ، يتم إنشاء كائن HashMap.ثم يمكن للمبرمج إضافة عناصر باستخدام هذا الكائن. يمكن إدخال القيم باستخدام طريقة put. لجلب القيم ، يجب على المبرمج استخدام طريقة get مع المفتاح. عند استخدام studentList.get ("150") ؛ سيطبع الاسم المقابل لهذا الفهرس وهو Ann. إذا أراد المبرمج الحصول على جميع القيم ، فيمكنه استخدام Map. Entry لطباعة جميع المفاتيح والقيم. عند مراقبة المخرجات ، يمكن ملاحظة أن HashMap لا تحتفظ بترتيب معين. لا يطبع العناصر بالترتيب المدرج. يتم طباعة العناصر بترتيب عشوائي.
ما هو TreeMap؟
TreeMap هي فئة في Java تنفذ واجهة الخريطة. على غرار HashMap ، يتم استخدامه أيضًا لتخزين أزواج المفاتيح والقيمة ولكن بترتيب تصاعدي. يقوم TreeMap بتنفيذ NavigableMap و NavigableMap يمتد SortedMap و SortedMap يوسع الخريطة. كل عنصر فريد من نوعه. إعلان خريطة الشجرة كما يلي.
فئة عامة TreeMap يمتد AbstractMap لتنفيذ NavigableMap ، Cloneable ، Serializable
يشير K إلى المفتاح بينما يشير V إلى القيمة المقابلة لهذا المفتاح المحدد. كل مفتاح ، زوج قيم هو إدخال لخريطة الشجرة.
الشكل 03: برنامج TreeMap باستخدام Java
وفقًا للبرنامج أعلاه ، يتم إنشاء كائن TreeMap. ثم يمكن للمبرمج إضافة عناصر باستخدام هذا الكائن. يمكن إدخال القيم باستخدام طريقة put. لجلب القيم ، يجب على المبرمج استخدام طريقة get مع المفتاح. عند استخدام studentList.get ("150") ؛ سيطبع الاسم المقابل لهذا الفهرس وهو Ann. إذا أراد المبرمج الحصول على جميع القيم ، فيمكنه استخدام Map. Entry لطباعة جميع المفاتيح والقيم. عند مراقبة الإخراج ، يمكن ملاحظة أن TreeMap تحتفظ بترتيب معين. العناصر مطبوعة بترتيب تصاعدي
ما هي أوجه التشابه بين HashMap و TreeMap؟
- يقوم كل من HashMap و TreeMap بتنفيذ واجهة الخريطة.
- يمكن لكل من HashMap و TreeMap تخزين العديد من العناصر ومعالجتها.
- يحتوي كل من HashMap و TreeMap على أزواج المفتاح والقيمة.
- يمكن أن يحتوي كل من HashMap و TreeMap على العديد من القيم الخالية.
- لا توجد قيود على عدد العناصر التي يمكن تخزينها في كل من HashMap و TreeMap.
ما هو الفرق بين HashMap و TreeMap؟
HashMap مقابل TreeMap |
|
A HashMap عبارة عن فئة تجميع تستند إلى الخريطة تُستخدم لتخزين أزواج المفاتيح والقيمة التي لا تحتفظ بترتيب معين في عناصر البيانات. | خريطة شجرة هي فئة تجميع تعتمد على الخريطة تُستخدم لتخزين أزواج المفاتيح والقيمة التي تحافظ على الترتيب التصاعدي لعناصر البيانات. |
الأمر | |
لا تحتفظ HashMap بالترتيب. | يحافظ TreeMap على الترتيب التصاعدي. |
مفتاح فارغ | |
يمكن أن تحتوي HashMap على مفتاح واحد فارغ. | لا يمكن أن يحتوي TreeMap على مفتاح فارغ. |
الأداء | |
HashMap أسرع من TreeMap. | TreeMap أبطأ من HashMap. |
ملخص - HashMap مقابل TreeMap
تحتوي لغات البرمجة مثل Java على إطار عمل المجموعة. في المصفوفات ، يمكن أن يكون هناك عدد ثابت من العناصر. لذلك ، يجب تهيئة حجم الصفيف في البداية. في المجموعات ، يمكن للمبرمج تخزين العديد من العناصر كما هو مطلوب.لا يوجد مبلغ محدد للتخزين. الخريطة هي واجهة تنتمي إلى إطار المجموعة. HashMap عبارة عن فئة تجميع تستند إلى الخريطة تُستخدم لتخزين أزواج المفاتيح والقيمة التي لا تحتفظ بترتيب معين في عناصر البيانات. إن TreeMap عبارة عن فئة تجميع تستند إلى الخريطة تُستخدم لتخزين أزواج المفاتيح والقيمة التي تحافظ على الترتيب التصاعدي لعناصر البيانات. ناقشت هذه المقالة الفرق بين HashMap و TreeMap الذي يقوم بتنفيذ واجهة الخريطة. الفرق بين HashMap و TreeMap هو أن HashMap لا يحتفظ بترتيب معين في عناصر البيانات بينما يحتفظ TreeMap بالترتيب التصاعدي لعناصر البيانات.