HashMap مقابل HashSet: الفرق والمقارنة

HashMap و HashSet هما وظيفتان مختلفتان في Hashtable. جدول التجزئة ليس سوى بنية بيانات حيث يمكنك تعيين القيم الأساسية.

دالة التجزئة هي الشيء الأساسي في Hashtable. الميزة الأساسية لجدول التجزئة هي السرعة عند مقارنتها بهياكل البيانات الأخرى.

الوجبات السريعة الرئيسية

  1. HashMap هي بنية بيانات تخزن أزواج القيمة الرئيسية ، بينما تخزن HashSet عناصر فريدة بدون قيم مرتبطة.
  2. يقوم HashMap بتنفيذ واجهة الخريطة ، ويقوم HashSet بتنفيذ واجهة Set في Java.
  3. يتم دعم HashSet بواسطة HashMap ، باستخدام قيم وهمية للمفاتيح للحفاظ على مجموعة من العناصر الفريدة.

HashMap مقابل HashSet

HashMap هي بنية بيانات قائمة على القيمة الرئيسية تسمح لنا بتخزين واسترداد العناصر باستخدام ملف مفتاح فريد. HashSet عبارة عن بنية بيانات قائمة على مجموعة تُستخدم لتخزين مجموعة من الكائنات الفريدة وتستخدم التجزئة لتخزين الكائنات وتوفر أداءً ثابتًا.

HashMap مقابل HashSet

خريطة التجزئة هو نوع ترابطي لنوع بيانات المصفوفة. إنه جزء من مجموعة Java. يمكن العثور على هذه الفئة في Java حتى الحزمة.

يمكن تنفيذ ذلك في واجهة الخريطة الخاصة بجافا ، حيث يتم تخزين البيانات في (KEY، VALUE) ، والتي تُستخدم لتخزين القيمة والوصول إليها عن طريق المفتاح.

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

يتم أيضًا تخزين المفاتيح الفارغة في ملفات خريطة التجزئة. تسمح HashMap بمفتاح فارغ واحد فقط.

تحتوي HashSet على مجموعات فريدة. يمكن العثور على هذه الفئة في Java حتى الحزمة.

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

لا يسمح بقيم مكررة ولكن يمكن أن يكون لدينا قيم وهمية. الميزة الرئيسية هي أنه يمكن أن يكون واجهة قابلة للتسلسل والاستنساخ.

جدول المقارنة

معلمات المقارنةخريطة التجزئةHashSet
القيم الوهميةHashMap ليس له قيم وهميةHashSet له قيم وهمية
آلية الإضافةيستخدم HashMap تقنية التجزئةيستخدم HashSet كائن تجزئة
سرعةHashMap أسرعHashSet أبطأ
طريقة الإدراجطريقة الإدراج في HashMap هي Put ()طريقة الإدراج في HashSet هي Add ()
مثال(أ -10 ، ب -20 ، ج -70)(10,20,70)

ما هو HashMap؟

يمكن تنفيذ Hashmap باستخدام الطريقة (Hash Map hm = خريطة HashMap جديدة () ؛). يمكن إنشاء سعة أولية محددة وعامل تحميل في HashMap على سبيل المثال.

اقرأ أيضا:  دعم Microsoft الموحد مقابل دعم Premier: الفرق والمقارنة

يمكن أن تؤذي HashMap القيم بطرق مختلفة. يخزن السلسلة كمفتاح. في HashMap ، تعتبر القيم الأساسية ككائنات. المهمة الأساسية هي تنظيم الجدول باستخدام قيم أو كائنات kay. الوقت المستغرق للتنظيم هو O (1) الوقت.

لأنها مفاتيح مرنة كقوة لخريطة التجزئة. هذه تشبه المصفوفة ، ولكنها تحتوي على "مؤشرات" تُستخدم للوصول إلى البيانات ، ولكن في خريطة التجزئة ، نستخدم المفاتيح للوصول إلى القيم.

هناك بعض العمليات الأساسية لـ HashMap مثل إضافة عنصر ، والوصول إلى عنصر ، وتغيير عنصر ، وإزالة عنصر.

لإضافة عنصر ، نستخدم طريقة put () ، للوصول إلى عنصر ، نستخدم طريقة get () ، لتغيير عنصر ، نستخدم طريقة replace () ، لإزالة عنصر ، استخدم طريقة remove ().

وبالمثل ، هناك العديد من الأوامر والطرق مثل clear ، و compute ، و Merge ، و clone ، و size ، وما إلى ذلك ، وهي مفيدة للمبرمج لاستخدام HashMap بشكل فعال.

ما هو HashSet؟

يمكن تنفيذ HashSet من خلال بناء الجملة (Hash Set <E> hs = new Hash Set <E> () ؛) والتي تحدد سعة مجموعة التجزئة أيضًا دون تحديد القيمة الافتراضية لها ستكون 16 وسيكون عامل التحميل 0.75.

يتم استخدام HashSet (سعة int ، نسبة التعبئة الطافية) لتغيير حجم سعة التجزئة ، عندما تكون العناصر أكبر ، يجب أن يكون لديها القدرة على تخزين القيمة في المجموعة ، وبالتالي يتم توسيع المجموعة.

لدينا نفس العمليات الأساسية مثل الإضافة ، والإزالة ، والاحتواء ، والحجم ، ولكن لها أداء ثابت للوقت لهذا على العمليات الأساسية.

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

في اتحاد المجموعة ، يمكننا إجراء عملية اتحاد بين مجموعتين باستخدام طريقة add-all (). في اختلاف المجموعة ، يمكننا حساب الفرق بين مجموعتين باستخدام طريقة إزالة الكل ().

اقرأ أيضا:  ExtJS مقابل jQuery: الفرق والمقارنة

في المجموعة الفرعية ، يمكننا إضافة مجموعة فرعية أخرى من مجموعة أخرى باستخدام طريقة () تحتوي على الكل. عندما نضيف قيمًا أو ندخل القيمة في HashSet ، لا يمكن إدخالها على أساس الكود.

يتم إرجاع التكرار للعناصر بدون ترتيب معين. يمكننا أيضًا استخدام الفهرس الذي يتم فيه تخزين البيانات المرتبطة بالمفتاح.

في الغالب يمكننا استخدام التجزئة للوصول إلى عنصر عشوائي من مجموعتهم. لأنه يتم الوصول إليه من خلال كود التجزئة ، حيث يكون فريدًا حتى نتمكن من التعرف على العنصر بسهولة.

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

القيم الموجودة في الأصل أو في الواقع كائن يمكننا إنشاء كائن من نوع سلسلة ويمكن لفها في فئة نحددها. حيث يخزن عددًا صحيحًا ككائن للحد من تعقيد الوقت.

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

  1. متطلب الكائن أثناء الإضافة في HashMap هو اثنان ، بينما في HashSet ، يكون متطلب الكائن أثناء الإضافة واحدًا فقط.
  2. يحتوي HashMap على أي عدد من القيم الخالية ، لكن HashSet له قيمة فارغة واحدة فقط.
  3. يتم تخزين زوج المفتاح والقيمة في HashMap ، بينما يتم تخزين الكائنات في HashSet.
  4. عند مقارنتها بـ Hashmap ، يتم استخدام HashSet لتفرد البيانات.
  5. مثال على HashMap هو {a-> 4، b-> 9، c-> 5} ، ومثال HashSet هو {6 ، 43 ، 2 ، 90 ، 4}.
مراجع حسابات
  1. https://dl.acm.org/doi/abs/10.1145/2884781.2884869?casa_token=1z9VmoTZC90AAAAA:8-pUqjpp5C0S4rIzg2sMUI4FeuvVH5QIN99WkbSrP1HSwCa13CtZa7lXBKMzm864NI__H8iKBcjMZck
  2. https://ieeexplore.ieee.org/abstract/document/5370764/

آخر تحديث: 13 يوليو 2023

النقطة 1
طلب واحد؟

لقد بذلت الكثير من الجهد في كتابة منشور المدونة هذا لتقديم قيمة لك. سيكون مفيدًا جدًا بالنسبة لي ، إذا كنت تفكر في مشاركته على وسائل التواصل الاجتماعي أو مع أصدقائك / عائلتك. المشاركة هي ♥ ️

اترك تعليق

هل تريد حفظ هذه المقالة لوقت لاحق؟ انقر فوق القلب الموجود في الزاوية اليمنى السفلية للحفظ في مربع المقالات الخاصة بك!