Logo ar.removalsclassifieds.com

الفرق بين HashMap و LinkedHashMap (مع الجدول)

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

Anonim

Java هي لغة برمجة موجهة للفئة تُستخدم لتنفيذ الأوامر بأقل عدد من التبعيات. تمثل Map Interface في Java العلاقة بين المفتاح وقيمته. تحتفظ عدة مجموعات من تطبيقات الخرائط بواجهة الخريطة.

HashMap و LinkedHashMap هما تطبيقان شائعان لتطبيق Map لجافا. التشابه بين الاثنين هو أنهما غير متزامنين. لديهم أيضًا أوجه تشابه في أدائهم. لكن ما الفرق بين الاثنين؟

HashMap مقابل LinkedHashMap

يتمثل الاختلاف بين HashMap و LinkedHashMap في أن HashMap لا يحتفظ بالترتيب الذي يتم فيه إدخال المفاتيح أو العناصر بينما يتبع LinkedHashMap ترتيب إدخال المفاتيح ويحافظ على ترتيب العناصر.

HashMap هو تطبيق Map لجافا يستخدم فئة AbstractMap ويمدها للمساعدة في تكوين مجموعة من الموروثات التي تنتمي إلى نفس الفئة. العناصر التي تم إدخالها ليس لها ترتيب ولا يتم تخزين الترتيب الذي تم إدخالها به.

LinkedHashMap هو تطبيق آخر للخريطة يمثل فئة فرعية من HashMap. نظرًا لأن لديهم ترتيب إدخال مفتاح ، فإن تطبيقاتهم موجودة في المناطق التي يكون فيها ترتيب الإدراج والوصول أمرًا مهمًا. لديهم أيضًا ذاكرة أكبر من HashMap.

جدول المقارنة بين HashMap و LinkedHashMap

معلمات المقارنة

خريطة التجزئة

لينكدهاشماب

المعنى

إنه تطبيق خريطة جافا يستخدم فئة AbstractMap ويساعد في إنشاء مجموعة من التركات. إنه أيضًا نوع من خريطة Java وهو فئة فرعية من HashMap التي تنفذ Hashtable و Linked List of Map.
عناصر

العناصر التي تم إدخالها في HashMap ليست بالترتيب. من المعروف أن العناصر في ترتيب إدخال المفاتيح.
طلب

لا يتم الاحتفاظ بترتيب إدخال العناصر بواسطة HashMap. نظرًا لأنها في ترتيب إدخال المفتاح ، يتم الاحتفاظ بترتيب إدخال العناصر.
هيكل البيانات

يتم تخزينها كقائمة من الحاويات ويتم تنفيذها كجدول تجزئة في واجهة الخريطة. يحتوي LinkedHashMap على قائمة مرتبطة بشكل مضاعف تعمل من خلال جميع القوائم المخزنة فيه.
استرجاع

من السهل استرداد أو تنفيذ مهام أخرى من هذا القبيل في القوائم المخزنة في HashMap. يعد استرداد الإدخالات أو إزالتها أو إضافتها إلى LinkedHashMap أصعب مما هو عليه في HashMap.
التطبيقات

يتم استخدامه في أماكن لتسهيل الاسترجاع ولأغراض عامة أخرى. يتم تطبيقه أو استخدامه في الأماكن التي يكون فيها الإدخال أو أمر الوصول مهمًا. مثل مخبأ LRU.

ما هو HashMap؟

HashMap هو تطبيق للخريطة ينفذ ويمتد في AbstractMap للمساعدة في إنشاء مجموعة من الموروثات التي تنتمي إلى نفس الفئة. إنها فئة تسمح للشخص بتخزين المفاتيح وقيمها لتشكيل واجهة خريطة.

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

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

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

ما هو LinkedHashMap؟

LinkedHashMap هي أيضًا مجموعة تنفيذ الخرائط. إنها مجموعة فرعية من HashMap ولكنها توسع وتنفذ HashMap نفسها التي تمتد إلى AbstractMap ثم لتعيين الواجهة.

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

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

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

الفرق بين HashMap و LinkedHashMap

  1. HashMap هو أحد تطبيقات Java Map الشائعة التي تستخدم فئة AbstractMap ويمكنها توسيعها للمساعدة في إنشاء مجموعة من توارث AbstractMap. LinkedHashMap هي فئة فرعية من HashMap وهي توسع HashMap وتنفذ قائمة مرتبطة بالخريطة.
  2. العناصر التي تم إدخالها في HashMap ليس لها ترتيب معين بينما يتبع LinkedHashMap ترتيب إدخال المفتاح.
  3. الاختلاف الرئيسي هو الحفاظ على النظام من خلال الخريطتين. لا تحتفظ HashMap بالترتيب الذي يتم إدخال المفاتيح أو العناصر به. وحيث أنه نظرًا لأن LinkedHashMap يتبع ترتيب إدخال المفتاح ، فإنها تحافظ على الترتيب الذي يتم إدخال العناصر به.
  4. يتم تخزين بنية بيانات HashMap كقوائم من المستودعات التي تم تطبيق Hashtable عليها. إذا كان هناك أكثر من عدد معين من الإدخالات ، فسيتم تحويلها إلى شكل متوازن. من ناحية أخرى ، يحتوي LinkedHashMap على قوائم مرتبطة بشكل مزدوج تعمل من خلال جميع القوائم المخزنة لإدارة بنية البيانات الخاصة بهم.
  5. استرجاع وتنفيذ وظائف مثل الإزالة وإضافة إدخالات البيانات أمر سهل في HashMap. لكن أداء نفس الوظائف على LinkedHashMap أصعب منه في HashMap.
  6. نظرًا لأن استرداد إدخالات البيانات أسهل ، يتم استخدام HashMap لاستعادة البيانات بسرعة ولأغراض عامة أخرى. من ناحية أخرى ، يتم استخدام LinkedHashMap في الأماكن التي يكون فيها ترتيب الإدراج أو الوصول مهمًا. كما هو الحال في ذاكرة التخزين المؤقت LRU.

استنتاج

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

HashMap هو تطبيق الخريطة الذي ينفذ ويوسع AbstractMap. لديهم أيضًا سرعة استرداد بيانات أسرع وأداء وظائف مثل إضافة وإزالة الإدخالات على هذه البيانات هي أيضًا أسرع.

LinkedHashMap هي فئة فرعية من HashMap وهي أيضًا تطبيق خريطة يقوم بتنفيذ HashMap نفسه وتوسيعه. يتم تخزين العناصر التي تم إدخالها وفقًا للترتيب الذي تم إدخاله في أمر الوصول.

الفرق بين HashMap و LinkedHashMap هو أيضًا أن HashMap تتمتع بسرعة استرداد أكبر بينما تتمتع LinkedHashMap بذاكرة أكبر مقارنةً بـ HashMap.

مراجع

الفرق بين HashMap و LinkedHashMap (مع الجدول)