ArrayList مقابل HashMap

< span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  هما فئتان للتجميع في جافا. على الرغم من أن لديهم نفس الدور في جمع البيانات وتنظيمها ، إلا أن الطريقة التي يقومون بها بعمل نسخة احتياطية من البيانات ومعالجتها مختلفة. في هذه المقالة سوف نرى الاختلافات والتشابهات بين الاثنين.

الفرق بين ArrayList و HashMap في Java

أحد الاختلافات المهمة بين نمط HashMap و ArrayList< / span> هو أن الأول هو تنفيذ جدول التجزئة والثاني عبارة عن مصفوفة ديناميكية يمكن تغيير حجمها. < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  هما الفئتان الأكثر شيوعا في إطار عمل Java Collection. كلاهما يستخدم في تخزين المعلومات وتنفيذها ، الاستخدام مختلف تماما.
الفرق الرئيسي بين  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  هل هذا  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  يعتمد على بنية فهرس الصفيف بينما < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  عبارة عن بنية في خريطة تستخدم التجزئة لاستخراج القيم.

بعض الاختلافات الحاسمة بين  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap:
  • الفرق الأول بين < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  هل هذا  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  ينفذ الواجهة قائمة< / امتداد> بينما < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  ينفذ نمط Map في Java.
  • قائمة الصفيف  النسخ الاحتياطي كائن واحد في كل مرة بينما  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  يحفظ المفتاح والقيم< المفتاح والقيمة >. < / li>
  • قائمة الصفيف  يحافظ على ترتيب الكائنات المضافة. < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  لا يضمن هذه الوظيفة.< / li>
  • قائمة الصفيف  يسمح بإدخال كائنات مكررة ولكن  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  لا يسمح بإدخال نفس المفتاح مرتين ، لكنه يسمح بنفس قيم المفاتيح.< / li>
  • تعقيد نمط الحصول على (فهرس) < / span> من  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  هو O (1) لكن  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" يمكن أن يكون >get(key) O (1) في أفضل الأحوال و O (n) في أسوأ الحالات.< / li>< / ul>

    أوجه التشابه بين ArrayList و HashMap في Java< / h2 > فيما يلي بعض النقاط المشتركة بين  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  في جافا:
    • قائمة الصفيف  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  غير متزامنة. يجب عدم استخدامها في برنامج متعدد الخيوط بدون مزامنة خارجية.
    • تكرار   < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  يمكن أن يؤدي إلى A  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >ConcurrentModificationException< / span> إذا حدث تغيير في البنية مرة واحدة فقط المكرر< / span>.< / li>
    • قائمة الصفيف  يسمح< نمط الامتداد = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >فارغة< / سبان>.  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  يسمح< نمط الامتداد = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >فارغ< / سبان> للمفاتيح والقيم.< / li>
    • قائمة الصفيف  يسمح بالعناصر المكررة و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  يسمح بتكرار القيم.
    • من حيث الأداء  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >قائمة الصفيف  لديه وقت ثابت للقراءة إذا كنت تعرف الفهرس بالطريقة get() مشابه ل  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >HashMap  الذي يحتوي أيضا على وقت قراءة ثابت.< / li>
    • تنفيذ نمط ArrayList و HashMap على صفيف.
    • كلتا المجموعتين ArrayList و HashMap< / span> باستخدام نمط المكرر< / span>.< / li>< / ul>