الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماهو الفرق ين المجموعات والمصفوفات؟؟

بدأه اشليان في 3 فبراير 2010 · 5 رد · 1,401 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

ماهو الفرق ين المجموعات والمصفوفات؟؟

وهل يمكن التعامل مع المصفوفة على أنها مجموعة أو العكس؟

#2

ما هو المصطلح الإنجليزي للمصفوفة و المجموعة التي تقصدها حتى لا يحصل لبس في الفهم؟

#3

المصفوفات مقصود بها array

و المجموعات Collections

#4

المصفوفات Arrays هى ابسط Data structure يمكن التعامل معه و تتكون من مجموعه من العناصر ذات نوع واحد

المجموعات Collections و هى تمثل Data structure معين و لها خصائص و عمليات تختلف بإختلاف المجموعه نفسها.

يصعب تحديد الإختلاف بينهم لأنك لم تحدد نوع معين من المجموعات فمثلا اذا تكلمنا عن الفرق بين المصفوفات و القوائم المتصله Linked Lists ستجد ان:

1 - الإضافه فى اولها : للمصفوفه هى عمليه صعبه اما للقوائم المتصله فهى عمليه بسيطه.

2 - الإضافه فى منتصفها : للمصفوفه هى عمليه صعبه اما للقوائم المتصله فهى عمليه بسيطه.

3 - الإضافه فى اخرها : للمصفوفه هى عمليه بسيطه و كذلك للقوائم المتصله.

4 - الحذف من اولها : للمصفوفه هى عمليه صعبه اما للقوائم المتصله فهى عمليه بسيطه.

5 - الحذف من منتصفها : للمصفوفه هى عمليه صعبه اما للقوائم المتصله فهى عمليه بسيطه.

6 - الحذف من اخرها : للمصفوفه هى عمليه بسيطه و كذلك للقوائم المتصله.

توجد اوجه مقارنه كثيره يمكن التحدث عنها و لكن كما ذكرت من قبل نخنلف معايير المقارنه من نوع لأخر.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#5
Muhammad alaa كتب:

المصفوفات Arrays هى ابسط Data structure يمكن التعامل معه و تتكون من مجموعه من العناصر ذات نوع واحد

المجموعات Collections و هى تمثل Data structure معين و لها خصائص و عمليات تختلف بإختلاف المجموعه نفسها.

يصعب تحديد الإختلاف بينهم لأنك لم تحدد نوع معين من المجموعات فمثلا اذا تكلمنا عن الفرق بين المصفوفات و القوائم المتصله Linked Lists ستجد ان:

1 - الإضافه فى اولها : للمصفوفه هى عمليه صعبه اما للقوائم المتصله فهى عمليه بسيطه.

2 - الإضافه فى منتصفها : للمصفوفه هى عمليه صعبه اما للقوائم المتصله فهى عمليه بسيطه.

3 - الإضافه فى اخرها : للمصفوفه هى عمليه بسيطه و كذلك للقوائم المتصله.

4 - الحذف من اولها : للمصفوفه هى عمليه صعبه اما للقوائم المتصله فهى عمليه بسيطه.

5 - الحذف من منتصفها : للمصفوفه هى عمليه صعبه اما للقوائم المتصله فهى عمليه بسيطه.

6 - الحذف من اخرها : للمصفوفه هى عمليه بسيطه و كذلك للقوائم المتصله.

توجد اوجه مقارنه كثيره يمكن التحدث عنها و لكن كما ذكرت من قبل نخنلف معايير المقارنه من نوع لأخر.

و الله ولى التوفيق

مشكور وجزاك الله خير

بس قي هناك سؤال يدور في خاطري

وهو هل يمكن التعامل مع المصفوفة على أنها مجموعة أو العكس؟

أي هل يمكن التعامل مع المجموعة استخدام الحلقة For To ومع المصفوفة بالحلقة For Each

#6

لإستخدام For-Each مع نوع معين فلابد منه ان يتضمن الواجهه IEnumerable او IEnumerable<T> Generic. اى نوع قام بتضمين تلك الواجهه داخله يمكن استخدام الحلقه For-Each معه و حيث ان الفئه Array (و التى يتم وراثة كل المصفوفات منها) قامت بتضمينها لذا يمكنك استخدام For-Each مع المصفوفات، و حيث ان اغلب المجموعات تقوم بتضمين هذه الواجهه فيمكنك استخدام For Each معها اذا قامت بتضمين الواجهه.

بالنسبه للحلقه For فهى Counter Loop فإذا كنت تعرف بداية و نهاية الحلقه فيمكنك استخدامها و حيث ان المصفوفه دائما ما يبدأ ترقيم عناصرها من صفر و النهايه تكون بالخاصيه Length لذا يمكنك استخدام هذه الحلقه معها. بالنسبه للمجموعات فهذه الحلقه قد لا تنفع و السببب فى ذلك يعتمد على طبيعة المجموعه فمثلا اذا تكلمنا عن المجموعه Dictionary فهى تتيح لك الخاصيه Count لمعرفة عدد العناصر بها و لكن عند محاولة استرجاع عنصر منها لابد منك ان تمرر key و ليس index و بالتالى فهذه الحلقه لا تنفع معها إلا لو فكرت بشكل اخر مثل ان تقوم بالحصول على الـ keys داخل مصفوفه ثم تثوم بإدخال الـ index لهذه المصفوفه و الـ key الناتج تقوم بتمريره للـ Dictionary للحصول على الـ value الخاصه به و لكن هذا موضوع اخر.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

مواضيع مشابهة