الفرق الرئيسي - TreeSet و HashSet
تدعم معظم لغات البرمجة المصفوفات. إنها بنية بيانات تُستخدم لتخزين عناصر متعددة من نفس نوع البيانات. إذا كان هناك مصفوفة معلنة لستة عناصر ، فلا يمكن استخدامها لتخزين عشرة عناصر. لذلك ، المصفوفات ليست ديناميكية ولا يمكنها تغيير حجم المصفوفة بمجرد إعلانها. تدعم لغات البرمجة مثل Java المجموعات المستخدمة لتخزين البيانات ديناميكيًا. تدعم المجموعات عمليات مثل إضافة العناصر وحذفها. يوجد عدد من الواجهات والفئات في التسلسل الهرمي للمجموعة. الواجهة الأساسية هي واجهة المجموعة.المجموعة هي واجهة تعمل على توسيع واجهة المجموعة. لا يسمح بالازدواجية. تعد TreeSet و HashSet فئتين في التسلسل الهرمي للمجموعة ويقوم كلاهما بتنفيذ واجهة المجموعة. TreeSet هي فئة تنفذ واجهة Set وتستخدم لتخزين العناصر الفريدة بترتيب تصاعدي. HashSet هي فئة تنفذ واجهة Set وتستخدم لتخزين عناصر فريدة باستخدام آلية Hashing. يتمثل الاختلاف الرئيسي بين TreeSet و HashSet في أن TreeSet تخزن العناصر بترتيب تصاعدي بينما لا تقوم HashSet بتخزين العناصر بترتيب تصاعدي. يقوم كل من TreeSet و HashSet بتخزين العناصر الفريدة فقط.
ما هي مجموعة الشجرة؟
فئة TreeSet تنفذ واجهة NavigableSet. تمتد واجهة NavigableSet إلى واجهات SortedSet و Set و Collection و Iterable بترتيب هرمي. تحافظ TreeSet دائمًا على الترتيب التصاعدي. إذا تم إدراج العناصر بترتيب B ، A ، C ، فسيتم تخزينها على هيئة A ، B ، C. يمكن استخدام الطرق مثل add () ، remove () مع كائن TreeSet.يمكن استخدام طريقة الإضافة لإضافة عنصر. يتم استخدام طريقة الإزالة لإزالة عنصر من المجموعة. هذه بعض الطرق التي يمكن استخدامها مع TreeSet.
الشكل 01: برنامج مع TreeSet
وفقًا للبرنامج أعلاه ، يتم إنشاء كائن من نوع TreeSet. تتم إضافة عناصر بيانات السلسلة إلى هذا الكائن باستخدام طريقة الإضافة. ترتيب إدراج البيانات هو A ، D ، A ، B ، C ، D. باستخدام المكرر ، تتم طباعة القيم المخزنة على الشاشة. الناتج هو A و B و C و D. على الرغم من وجود حرفين A وحرفين D ، فإن الإخراج يعرض الحرف A و D لكل منهما. لذلك ، تخزن TreeSet عناصر فريدة. لا يوجد ترتيب إدراج معين ولكن عند مراقبة الإخراج ، يمكن ملاحظة أن TreeSet تحافظ على الترتيب التصاعدي للعناصر.
ما هي HashSet؟
تمدد فئة HashSet فئة AbstractSet التي تنفذ Set Interface. ترث واجهة Set واجهات التجميع والتكرار بترتيب هرمي. في HashSet ، ليس هناك ما يضمن أن العناصر ستحافظ على الترتيب التصاعدي والترتيب المُدرج. إذا كان الأمر المدرج هو A ، B ، C ، فقد يتم تخزين القيم كـ C ، A ، B. يمكن أيضًا أن يكون أمر التخزين A ، B ، C ولكن لا يوجد ضمان للحفاظ على الأمر المدرج أو الترتيب التصاعدي.
الشكل 02: برنامج مع HashSet
وفقًا للبرنامج أعلاه ، يتم إنشاء كائن من نوع HashSet. تتم إضافة عناصر بيانات السلسلة إلى هذا الكائن باستخدام طريقة الإضافة. ترتيب إدخال البيانات هو L ، R ، M ، M ، R ، L. باستخدام المكرر ، تتم طباعة القيم المخزنة على الشاشة.الإخراج هو R L M. على الرغم من وجود حرفين L و R و M من كل منهما ، يتم عرض حرف واحد فقط من كل منهما. لذلك ، تخزن HashSet عناصر فريدة. عند مراقبة المخرجات ، يمكن ملاحظة أنه لا يوجد ترتيب تصاعدي أو يتم الاحتفاظ بالترتيب المدرج.
ما هي أوجه التشابه بين TreeSet و HashSet؟
- كلا من TreeSet و HashSet عبارة عن فئات تنتمي إلى التسلسل الهرمي للمجموعة.
- يقوم كل من TreeSet و HashSet بتخزين العناصر الفريدة فقط.
- يمكن استخدام كل من TreeSet و HashSet لتخزين العديد من العناصر ومعالجتها.
- لا يحتفظ كل من TreeSet و HashSet بالترتيب المدرج.
ما هو الفرق بين TreeSet و HashSet؟
TreeSet مقابل HashSet |
|
TreeSet هي فئة في التسلسل الهرمي للمجموعة تُستخدم لتخزين العناصر الفريدة بترتيب تصاعدي. | HashSet هي فئة في التسلسل الهرمي للمجموعة تُستخدم لتخزين عناصر فريدة باستخدام آلية التجزئة. |
تخزين العناصر | |
TreeSet يخزن العناصر بترتيب تصاعدي. | HashSet لا يخزن العناصر بترتيب تصاعدي. |
ملخص - TreeSet مقابل HashSet
في البرمجة ، يلزم تخزين عناصر البيانات ديناميكيًا. تدعم لغات البرمجة مثل Java المجموعات لتحقيق هذه المهمة. يوجد عدد من الواجهات والفئات في التسلسل الهرمي للمجموعة. تعد TreeSet و HashSet فئتين في التسلسل الهرمي للمجموعة. كلاهما يطبق واجهة Set. TreeSet هي فئة تنفذ واجهة Set وتستخدم لتخزين العناصر الفريدة بترتيب تصاعدي. HashSet هي فئة تنفذ واجهة Set وتستخدم لتخزين عناصر فريدة باستخدام آلية Hashing.الفرق بين TreeSet و HashSet هو أن TreeSet تخزن العناصر بترتيب تصاعدي بينما HashSet لا تخزن العناصر بترتيب تصاعدي. ناقش هذا المقال الفرق بين TreeSet و HashSet.