غالبًا ما يطلب الفرق بين Hashmap و Hashtable. سألخصها هنا اليوم.
(ط) تاريخ الميراث مختلف
يمتد علامة التجزئة من الطبقة العامة إلى أدوات القاموس Mappublic Class HashMap يمتد خريطة خريطة خريطة تجريدية
ترث علامة التجزئة من فئة القاموس ، و HashMap هو تنفيذ واجهة الخريطة التي أدخلتها Java 1.2.
(2) أمن مختلف
hashmap غير متزامن ، ويتم مزامنة الهاشتو بشكل افتراضي ، مما يعني أن hashtable آمن في مؤشر الترابط ويمكن أن تشترك مؤشرات الترابط المتعددة في علامة التجزئة ؛ وإذا لم يكن هناك تزامن صحيح ، لا يمكن لخيوط متعددة مشاركة hashmap. يوفر Java 5 لاحقًا ConcurrenthashMap ، وهو بديل للهاش ، وله قابلية التوسع أفضل من التصنيف. بالطبع ، يمكننا مزامنة hashmap بواسطة:
خريطة m = collections.synchronizemap (hashmap) ؛
(3) هو نفسه أو ما شابه في القيم الخالية الممكنة
يتيح لك HashMap استخدام القيم الخالية كمفتاح أو قيمة لإدخال الجدول. لا يوجد سوى سجل واحد في hashmap يمكن أن يكون مفتاحًا فارغًا ، ولكن يمكن أن يكون أي عدد من الإدخالات قيمة فارغة. وهذا يعني ، إذا لم يتم العثور على مفتاح بحث في الجدول ، أو إذا تم العثور على مفتاح البحث ، ولكنه قيمة فارغة ، فسيتم إرجاع () في حين أن علامة التجزئة لا تعمل ، لا يسمح المفتاح ولا القيمة بقيم فارغة.
(4) التطبيقات الداخلية لطريقتي اجتياز مختلفة
تستخدم علامة التجزئة و hashmap كلا ايتراتور ITerator. إن تكرار HashMap هو تكرار سريع الفشل ، في حين أن جهاز عهد علامة التجزئة ليس فاشلًا. لأسباب تاريخية ، يستخدم Hashtable أيضًا طريقة التعداد.
(5) استخدامات مختلفة لقيم التجزئة
يستخدم Hashtable مباشرة رمز الكائن ، في حين يحتاج HashMap إلى إعادة حساب قيمة التجزئة.
(6) تختلف طريقة الحجم الأولي وتوسيع مجموعة أساليب التنفيذ الداخلية.
الحجم الافتراضي لمجموعة التجزئة في علامة التجزئة هو 11 ، وطريقة الزيادة هي القديمة*2+1 ؛ الحجم الافتراضي لمجموعة التجزئة في Hashmap هو 16 ، ويجب أن يكون أسسًا 2.
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!