الفرق بين HashMap و TreeMap في جاوة

مؤلف: Laura McKinney
تاريخ الخلق: 2 أبريل 2021
تاريخ التحديث: 14 قد 2024
Anonim
Difference between HashMap, LinkedHashMap and TreeMap | Java Tutorial for beginners | Core Java
فيديو: Difference between HashMap, LinkedHashMap and TreeMap | Java Tutorial for beginners | Core Java

المحتوى


HashMap و TreeMap هما فئات الخريطة ويقوم كلاهما بتنفيذ واجهة الخريطة. Map هو كائن يخزّن أزواج قيمة المفتاح ، حيث يكون كل مفتاح فريدًا ولكن قد تكون هناك قيم مكررة. يستخدم فئة HashMap جدول التجزئة كهيكل بيانات. يستخدم TreeMap الشجرة الحمراء - السوداء كهيكل بيانات. الفرق الرئيسي بين HashMap و Treemap هو أن خريطة التجزئة لا يحفظ ترتيب الإدراج في حين أن Treemap هل.

لذلك دعونا نبدأ مناقشتنا حول الاختلافات بين HashMap و TreeMap بمساعدة مخطط المقارنة الموضح أدناه.

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

رسم بياني للمقارنة

أساس للمقارنةخريطة التجزئةTreeMap
الأساسي HashMap لا يحتفظ بترتيب الإدراج.TreeMap يحافظ على ترتيب الإدراج.
بنية بياناتيستخدم HashMap جدول التجزئة كهيكل بيانات أساسي.يستخدم TreeMap شجرة Red-Black مثل بنية بيانات أساسية.
مفاتيح فارغة والقيم HashMap يسمح Null key بمجرد الإعلان Null value أي عدد من الوقت.لا يسمح TreeMap بمفتاح Null ولكنه يسمح بقيم Null أي عدد من الوقت.
يمتد وينفذHashMap يمتد فئة AbstractMap وتنفذ واجهة خريطة.يمتد TreeMap فئة AbstractMap وتنفذ واجهة SortedMap و NavigableMap.
أداءHashMap تعمل بشكل أسرع.TreeMap بالمقارنة مع HashMap تعمل أبطأ.


تعريف HashMap

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

ترتيب الإدراج في HashMap هو ليس محفوظ مما يعني أن كائن hashmap لا يُرجع العناصر بالترتيب الذي تم إدراجها به. من ناحية أخرى ، فإن ترتيب العناصر التي سيتم إرجاعها غير ثابت.

ال مفتاح يسمح أن يكون لا شيء في وقت واحد ، ولكن القيم يمكن ان يكون لا شيء في اي وقت يمكن أن تحتوي HashMap على غير متجانسة كائنات للمفاتيح وكذلك القيم.

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

HashMap () HashMap (Map m) HashMap (int capacity)، HashMap (int capacity، float fillRatio)

ال أول المنشئ يخلق كائن فارغ من HashMap. ال ثانيا منشئ تهيئة HashMap باستخدام عناصر خريطة م. ال الثالث يقوم المُنشئ بتهيئة HashMap بالقدرة المتوفرة في الوسيطة. ال رابع يقوم المُنشئ بتهيئة السعة وكذلك نسبة الملء لكائن HashMap.


الافتراضي سعة من HashMap هو 16، والافتراضية نسبة ملء من HashMap هو 0.75.

تعريف TreeMap

مثل HashMap ، TreeMap هو أيضا فئة الخريطة. TreeMap يمتد AbstractMap الطبقة وتنفذ NavigabelMap و SortedMap. تخزن كائنات TreeMap عناصر الخريطة في بنية الشجرة. بنية البيانات المستخدمة لتخزين الخريطة هي شجرة الأحمر والأسود.

يقوم TreeMap بتخزين زوج القيمة الرئيسية بالترتيب الذي تم الفرز والذي يساعد في الاسترداد السريع للعناصر. إرجاع كائن TreeMap العناصر في مرتبة (تصاعدي) طلب.

هناك أربعة منشئي TreeMap:

TreeMap () TreeMap (مقارنة <؟ super K> comp) TreeMap (خريطة <؟ يمتد K ،؟ يمتد V> m) TreeMap (SortedMap خ)

ال أول إنشاء المنشئات كائن فارغ من TreeMap التي سيتم فرزها في ترتيبها الطبيعي مفاتيحها. ال ثانيا سيقوم المنشئ بإنشاء خريطة شجرة فارغة سيتم فرزها بواسطة المقارنة cmp. ال الثالث سوف ينشئ المنشئ أعلاه خريطة ثلاثية الأبعاد سيتم تهيئتها باستخدام إدخالات خريطة م. ال رابع سيقوم المنشئ بإنشاء خريطة ثلاثية الأبعاد سيتم تهيئتها باستخدام إدخالات SortedMap خ.

ليس لدى Treemap أي طريقة جديدة خاصة به ، فهو يستخدم طريقة واجهة NavigableMap و SortedMap وفئة AbstractMap.

  1. يتم استخدام كلتا الفئتين لإنشاء كائنات الخريطة ، لكن الفرق الأساسي بين HashMap و Treemap هو أن HashMap لا يحتفظ بترتيب الإدراج في حين أن Treemap لا.
  2. بنية البيانات المستخدمة من قبل Hashmap لتخزين عناصر الخريطة هي جدول التجزئة وهيكل البيانات المستخدم من قبل TreeMap لتخزين عناصر الخريطة هو الشجرة الحمراء السوداء.
  3. يمتد كلا الفصلين Hashmap و Treemap فئة AbstractMap ، لكن فئة HashMap تنفذ واجهة Map وتنفذ TreeMap واجهة NavigableMap و SortedMap.
  4. يمكن أن تكون القيم خالية في أي عدد من الوقت في كليهما ، لكن يُسمح بالمفتاح أن يكون فارغًا مرة واحدة فقط في HashMap ولا يمكن أن يكون المفتاح في Treemap.
  5. أداء HashMap أسرع ، فهو لا يضيع الوقت في فرز عناصر الخريطة كما يفعل TreeMap. وبالتالي ، فإن TreeMap ينفذ أبطأ من HashMap.

خاتمة:

يجب استخدام TreeMap فقط عندما تطلب زوج قيمة المفتاح في نموذج تم الفرز. كما يشمل الفرز تكلفة الأداء. HashMap يجري غير متزامن يعمل بشكل أسرع.