الفرق بين HashMap و Hashset هو السؤال الأكثر شيوعًا في مقابلات Java. إذا لم يتم إشراك إطار التجميع ومقابلة متعددة الخيوط ، فيمكن القول أنه غير مكتمل. لا تتضمن المشكلة في إطار التجميع Hashset و HashMap ، ويمكن القول أنها غير مكتملة. يعد كل من Hashmap و Hashset جزءًا من إطار التجميع ، مما يتيح لنا استخدام مجموعات من الكائنات. يحتوي إطار التجميع على واجهة وتنفيذها ، والتي يتم تقسيمها بشكل أساسي إلى واجهة محددة وواجهة قائمة وواجهة قائمة الانتظار. لديهم خصائصهم الخاصة. لا تسمح المجموعة بتكرار قيم مكررة ، وتسمح القائمة بتكرار. فهرسة الكائنات في المجموعة. مبدأ العمل في قائمة الانتظار هو خوارزمية FCFS (الخادم الأول ، الخادم الأول).
أولاً ، دعونا نلقي نظرة على ما هي hashmap و hashset ، ثم قارن الاختلافات بينهما.
ما هو hashset
تقوم HashSet بتنفيذ واجهة SET ، والتي لا تسمح بقيم مكررة في المجموعة. عندما نذكر Hashset ، فإن أول شيء هو التأكد من أن الكائن يتجاوز أساليب المساواة () و hashcode () قبل تخزين الكائن في hashset ، بحيث يمكن مقارنة الكائن ما إذا كانت قيم الكائن متساوية ، وذلك لضمان عدم وجود كائنات متساوية مخزنة في المجموعة. إذا لم نعيد كتابة هاتين الطريقتين ، فسيتم استخدام التنفيذ الافتراضي لهذه الطريقة.
يتم استخدام طريقة إضافة Boolean العامة (كائن O) لإضافة عناصر في المجموعة. عند تكرار قيمة العنصر ، ستعود على الفور خطأ ، وإذا تمت إضافتها بنجاح ، فسيعود بشكل صحيح.
ما هو hashmap
يقوم HashMap بتنفيذ واجهة الخريطة ، التي تقوم بتخطيط أزواج قيمة المفاتيح. مفاتيح مكررة غير مسموح بها في الخريطة. هناك تطبيقان أساسيان لواجهة الخريطة ، HashMap و Treemap. Treemap يحفظ ترتيب الكائنات ، في حين أن HashMap لا يمكن. HashMap يسمح أن تكون المفاتيح والقيم لاغية. HashMap غير متزامن ، لكن إطار التجميع يوفر طرقًا للتأكد من أن HashMap تزامن ، بحيث عند الوصول إلى HashMap في نفس الوقت ، يمكن أن يضمن أن مؤشر ترابط واحد فقط يغير الخريطة.
يتم استخدام طريقة وضع الكائن العام (مفتاح الكائن ، قيمة الكائن) لإضافة عناصر إلى الخريطة.
يمكنك قراءة هذا المقال لمعرفة كيف يعمل HashMap ، وهذه المقالة لمعرفة كيف تختلف hashmap و hashtable.
الفرق بين hashset و hashmap
| *hashmap* | *hashset* |
| يقوم HashMap بتنفيذ واجهة الخريطة | تقوم Hashset بتنفيذ واجهة Set |
| hashmap لتخزين أزواج القيمة الرئيسية | Hashset يخزن فقط الكائنات |
| استخدم طريقة PUT () لوضع العناصر في الخريطة | استخدم طريقة ADD () لوضع العناصر في المجموعة |
| يستخدم HashMap كائنات رئيسية لحساب قيم Hashcode | تستخدم Hashset كائنات الأعضاء لحساب قيم Hashcode. قد يكون رمز Hashcode هو نفسه بالنسبة لكائنين ، لذلك يتم استخدام طريقة متساوية () للحكم على مساواة الكائنات. إذا كان الكائنان مختلفان ، فالتراجع. |
| HashMap أسرع لأنه يستخدم المفتاح الوحيد للحصول على الكائن | Hashset أبطأ من hashmap |
إذا كنت تعرف أي اختلافات أخرى ، فيرجى ترك رسالة.
الرابط الأصلي: Javarevisited Translation: ImportNew.com - Tang Xiaojuan Translation Link: http://www.importnew.com/6931.html