ال خريطة التجزئة و HashSet في Java هي فئات المجموعة الأكثر شيوعًا. كلاهما يستخدم لبنية البيانات. يصف الجدول التالي الفرق بين HashMap وHashSet:
أساس | خريطة التجزئة | HashSet |
---|---|---|
تعريف | Java HashMap هو تطبيق يعتمد على جدول التجزئة لواجهة الخريطة. | HashSet هي مجموعة. يقوم بإنشاء مجموعة تستخدم جدول التجزئة للتخزين. |
تطبيق | تنفذ HashMap خريطة، قابلة للاستنساخ، وقابلة للتسلسل الواجهة. | تنفذ HashSet مجموعة، قابلة للاستنساخ، قابلة للتسلسل، قابلة للتكرار و مجموعة واجهات. |
متاجر | في HashMap نقوم بتخزين ملف زوج القيمة الرئيسية . يحافظ على تعيين المفتاح والقيمة. | في HashSet، نقوم بالتخزين أشياء . |
القيم المكررة | لا يسمح مفاتيح مكررة ، لكن القيم المكررة نكون مسموح . | لا يسمح القيم المكررة . |
القيم الخالية | يمكن أن تحتوي على أ مفتاح فارغ واحد و قيم فارغة متعددة . | يمكن أن تحتوي قيمة فارغة واحدة . |
طريقة الإدراج | يستخدم HashMap يضع() طريقة لإضافة العناصر في HashMap. | يستخدم HashSet يضيف() طريقة لإضافة عناصر في HashSet. |
أداء | HashMap هو أسرع/ من HashSet لأن القيم مرتبطة بمفتاح فريد. | HashSet هو أبطأ من HashMap لأنه يتم استخدام كائن العضو لحساب قيمة رمز التجزئة، والتي يمكن أن تكون هي نفسها بالنسبة لكائنين. |
عدد الكائنات | فقط واحد يتم إنشاء الكائن أثناء عملية الإضافة. | هناك اثنين الكائنات التي تم إنشاؤها أثناء عملية الوضع، واحدة لـ مفتاح وواحد ل قيمة . |
آلية التخزين | يستخدم HashMap داخليًا التجزئة لتخزين الأشياء. | يستخدم HashSet داخليًا ملف خريطة التجزئة كائن لتخزين الكائنات. |
الاستخدامات | نفضل دائما عندما لا نحافظ على التفرد . | يتم استخدامه عندما نحتاج إلى الحفاظ على التفرد البيانات. |
مثال | {أ->4، ب->9، ج->5} أين أ، ب، ج نكون مفاتيح و 4، 9، 5 نكون قيم المرتبطة بالمفتاح. | {6، 43، 2، 90، 4} ويدل على مجموعة. |
دعونا نفهم الاختلافات من خلال البرامج.
مثال على HashMap
في المثال التالي، عندما نضيف عنصرًا مكررًا بنفس المفتاح وقيمة مختلفة، فسيتم استبدال القيمة السابقة للمفتاح بالقيمة الجديدة.
عندما نضيف عنصرًا مكررًا بنفس المفتاح ونفس القيمة، فإن زوج المفتاح والقيمة لا يخزن المرة الثانية.
import java.util.*; public class HashMapExample { public static void main(String args[]) { //creating object of HashMap HashMap hm= new HashMap(); //adding key-value pair hm.put('John', 23); hm.put('Monty', 27 ); hm.put('Richard', 21); hm.put('Devid', 19); System.out.println('Before adding duplicate keys: '); System.out.println(hm); //adding duplicate keys hm.put('Monty', 25); //replace the Monty's previous age hm.put('Devid', 19); System.out.println('After adding duplicate keys: '); System.out.println(hm); } }
انتاج:
مثال على HashSet
في المثال التالي، يمكننا أن نرى أن القيم المكررة لا يتم تخزينها في HashSet ويتم تخزين القيمة الخالية مرة واحدة فقط.
import java.util.*; public class HashSetExample { public static void main(String args[]) { //creating object of HashSet HashSet hs= new HashSet(); //adding values to HashSet hs.add('Java'); hs.add('Python'); hs.add('C++'); hs.add('C'); System.out.println('Before adding duplicate and null values: '); System.out.println(hs); //adding duplicate values hs.add('Python'); hs.add('C'); System.out.println('After adding duplicate values: '); System.out.println(hs); //adding null values hs.add(null); hs.add(null); System.out.println('After adding null values: '); System.out.println(hs); } }
انتاج:
طريقة توسترينغ