Logo ar.removalsclassifieds.com

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

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

Anonim

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

HashMap مقابل Hashtable

يتمثل الاختلاف بين HashMap و Hashtable في أن HashMap يتيح القيم المكررة لكل من المفتاح والقيم ، بينما لا يقوم Hashtable بتمكين أي قيمة مكررة لكل من المفتاح والقيم. HashMap غير متزامن. ومن ثم فهي تمكن سلاسل رسائل متعددة من الاقتراب منها ، في حين أن Hashtable متزامن ولا يمكّن سلاسل رسائل متعددة من الاقتراب منها.

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

Hashtable يتتبع المتغيرات المعلنة في جافا. يعتمد Hashtable دائمًا على عامل التحميل بدلاً من عدد العناصر الموجودة في الجدول. ومن ثم فإن تنفيذ Hashtable بطيء للغاية. يعد Hashtable آمنًا من سلاسل رسائل متعددة لأنه لا يمكّن سلاسل رسائل متعددة من الاقتراب منها.

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

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

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

Hashtable

التزامن HashMap ليست متزامنة ، ومن ثم فهي تتيح سلاسل رسائل متعددة تقترب منها لأنها ليست آمنة من سلاسل رسائل متعددة. يعد Hashtable متزامنًا وآمنًا للعديد من سلاسل الرسائل لأنه لا يمكّن سلاسل رسائل متعددة من الاقتراب منها.
سرعة يتم تنفيذ HashMap بسرعة عالية. يتم تنفيذ Hashtable بسرعة بطيئة للغاية.
قبول القيمة الفارغة يقبل HashMap القيم الخالية لكل من المفتاح والقيم. لا يقوم Hashtable بتمكين أي قيمة فارغة لكل من المفاتيح والقيم.
التكرار التكرار سريع الفشل وأحيانًا يلقي ConcurrentModificationException. العداد ليس سريع الفشل ولا يقوم برمي أي ConcurrentModificationException.
الوراثة الطبقية فئة AbstractMap. فئة القاموس.
طلب يستخدم HashMap في صفحات الويب وتطبيقات الويب. يستخدم Hashtable لمدققات التدقيق الإملائي عبر الإنترنت والبرامج داخل اللعبة.

ما هو HashMap؟

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

يحتوي HashMap على أنواع مختلفة من المنشئات. مُنشئ HashMap () هو نوع من المُنشئ المستخدم لتفريغ HashMap بسعة أولية افتراضية وعامل تحميل افتراضي. يحتوي Hashmap على قيم مكررة ، ولم يتم ترتيب الإدخالات الموجودة في HashMap. على سبيل المثال ، يمتد HashMap للفئة العامة AbstractMap <K ، V يطبق Map ، cloneable ، قابل للتسلسل.

HashMap (السعة الأولية int) هو نوع من المُنشئ المستخدم لتفريغ HashMap بسعة أولية محددة وعامل تحميل افتراضي. علاوة على ذلك ، يقوم مُنشئ HashMap (السعة الأولية int ، عامل الحمولة العائم) بإفراغ HashMap بسعة أولية محددة وعامل تحميل.

HashMap غير متزامن. ومن ثم فهي في الغالب تمكن خيوط متعددة من الاقتراب منها ، وبسبب السلوك المنظم جيدًا ، يكون التنفيذ سريعًا. يتم استخدام HashMap (Mapm) لإنشاء HashMap جديد بنفس التعيين السابق مثل الخريطة المحددة. غالبًا ما يتم استخدام HashMaps في صفحات الويب وتطبيقات الويب.

ما هو Hashtable؟

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

في Hashtable ، إذا تم العثور على المفاتيح لتكون سلاسل ، فإن دالة التجزئة تحولها إلى عدد ، ولكن إذا تم العثور على مفتاح الإدخال كأعداد صحيحة ، فسيتم استخدام Key mod TableSize. من السهل حساب وظيفة التجزئة ، إلا أن التنفيذ القابل للتجزئة يتم بسرعة بطيئة للغاية. تعود السرعة المنخفضة إلى الحجم الكبير لـ Hashtable ، ولا يتم تخصيص المفاتيح.

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

في Hashtable ، توجد أيضًا دالة تجزئة ثانية ، والتي تُستخدم لتحليل التصادم. يتم استخدام Hashtable في المجمعين لتنفيذ جدول الرموز وبرامج الألعاب كجدول نقل ومدققات إملائية عبر الإنترنت.

الاختلافات الرئيسية بين HashMap و Hashtable

استنتاج

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

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

مراجع

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