الفرق بين صفائف و أريليستس

Anonim

صفائف مقابل أرايليستس

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

ما هي المصفوفات؟

هو مبين في الشكل 1 عبارة عن قطعة من التعليمات البرمجية تستخدم عادة للإعلان عن القيم وتعيينها إلى مصفوفة. الشكل 2 يصور كيف تبدو صفيف في الذاكرة.

قيم إنت [5]؛

القيم [0] = 100؛

القيم [1] = 101؛

القيم [2] = 102؛

القيم [3] = 103؛

القيم [4] = 104؛

الشكل 1: رمز لإعلان وتعيين قيم إلى صفيف

100 101 102 103 104
الفهرس: 0 1 2 < 3 4
الشكل 2: صفيف مخزن في الذاكرة

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

ما هي أرايليستس؟

يمكن أن ينظر إلى المصفوف كمصفوفة ديناميكية، والتي يمكن أن تنمو في الحجم. لذلك أرايليستس مثالية لاستخدامها في الوضع الذي كنت لا تعرف حجم العناصر المطلوبة في وقت الإعلان. في جاوة، يمكن ل أرايليستس فقط عقد الأشياء، فإنها لا يمكن أن تعقد أنواع بدائية مباشرة (يمكنك وضع أنواع بدائية داخل كائن أو استخدام الطبقات المجمع من الأنواع البدائية). عموما يتم توفير أرايليستس مع أساليب لأداء الإدراج والحذف والبحث. التعقيد الزمني للوصول إلى عنصر هو س (1)، في حين الإدراج والحذف لديه تعقيد الوقت من س (ن). في جاوة، يمكن اجتياز أرايليستس باستخدام حلقات فوريتش، تكرارات أو ببساطة باستخدام الفهارس.

ما هو الفرق بين المصفوفات و أرايليستس

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