فئة الهاشت
يرث علامة التجزئة واجهة الخريطة وينفذ جدول التجزئة مع رسم خرائط القيمة الرئيسية. يمكن استخدام أي كائن غير فائق كمفتاح أو قيمة.
استخدم (مفتاح ، قيمة) لإضافة بيانات ، استخدم GET (مفتاح) لاسترداد البيانات. الوقت النفقات العامة لهاتين العمليتين الأساسيتين ثابتة.
يقوم علامة التجزئة بضبط الأداء من خلال معلمات السعة الأولية ومعلمات عامل التحميل. عادة ، يمكن لعامل التحميل الافتراضي 0.75 تحقيق توازن الوقت والمساحة بشكل أفضل. يمكن أن توفر زيادة عامل التحميل المساحة ولكن سيزداد وقت البحث المقابل ، مما سيؤثر على عمليات مثل Get and Put.
مثال بسيط على استخدام علامة التجزئة على النحو التالي: وضع 1 و 2 و 3 في علامة تجزئة ، ومفاتيحهم هي "واحدة" ، "اثنان" ، "ثلاثة" على التوالي:
أرقام hashtable = new hashtable () ؛ number.put ("واحد" ، عدد صحيح جديد (1)) ؛ الأرقام.لإخراج رقم ، مثل 2 ، استخدم المفتاح المقابل:
integer n = (integer) number.get ("two") ؛ system.out.println ("two =" + n) ؛نظرًا لأن كائن كمفتاح سيحدد موضع القيمة المقابلة عن طريق حساب وظيفة التجزئة الخاصة به ، يجب على أي كائن كمفتاح تنفيذ الأساليب ومتساوي. ترث الأساليب hashcode و equals من كائن فئة الجذر. إذا كنت تستخدم فئة مخصصة كمفتاح ، فكن حذرًا جدًا. وفقًا لتعريف وظيفة التجزئة ، إذا كان الكائنان متماثلان ، أي OBJ1.equals (OBJ2) = صحيح ، يجب أن يكون رمز hashcode هو نفسه ، ولكن إذا كان الكائنان مختلفان ، فقد لا تختلف رموزها. إذا كانت الترميزات من كائنين مختلفين متماثلين ، فإن هذه الظاهرة تسمى الصراع. سيزيد الصراع من الوقت العام لتشغيل جدول التجزئة. لذلك ، حاول تحديد طريقة HashCode () لتسريع تشغيل جدول التجزئة.
إذا كان الكائن نفسه يحتوي على علامات ترميز مختلفة ، فستكون العملية الموجودة على جدول التجزئة نتائج غير متوقعة (إرجاع طريقة GET المتوقعة الفارغة). لتجنب هذه المشكلة ، تحتاج فقط إلى تذكر شيء واحد: يجب عليك إعادة كتابة طريقة متساوية وطريقة HashCode في نفس الوقت ، بدلاً من كتابة أحدهم.
تتم مزامنة الهاشتو.
فئة هاشماب
HashMap يشبه علامة التصنيف ، والفرق هو أن hashmap غير متزامن ويسمح فارغة ، أي القيمة الفارغة والمفتاح الفارغ. ومع ذلك ، عندما يتم اعتبار HashMap بمثابة مجموعة (القيم () يمكن أن تُرجع مجموعة) ، فإن وقت التكرار التكراري النفقات العامة يتناسب مع قدرة hashmap. لذلك ، إذا كان أداء عمليات التكرار أمرًا مهمًا للغاية ، فلا تضع سعة التهيئة لـ HashMap ليكون مرتفعًا جدًا أو أن عامل التحميل منخفض للغاية.
لخص