
القوائم lists في Dart
القوائم ( lists ) في لغة Dart هي عبارة عن أداة لتخزين البيانات مثل المصفوفة تماماً, نحن نستخدم المصفوفة لتخزين البيانات و كذلك القائمة List يستخدم لتخزين البيانات.
القوائم Lists تعتبر نوع مهم من أنواع البيانات و لإستخدامها يجب أن يكون لدينا مجموعة عناصر نخزنها في لسته مثل نصوص و ارقام و لإنشاء لستة نستعمل الأقواس المربعه [] و هي مرتبة قابلة للتعديل, أي هي مثل ليستة الطعام الموجودة في المطاعم و بها الأصناف.
القوائم Lists اكثر فاعلية و ديناميكية و اكثر كفاءة لأن عن طريقها نستطيع البحث داخل البيانات بكل سهولة “بحث, إضافة, حفظ” و إسترجاع و قراءة البيانات بكل سهولة. للقوائم List نوعان سوف نشرحهما بكل تفصيل وهما (Growable List, Fixed Length List).
يتم استخدام القوائم (Lists) لتخزين وتنظيم مجموعة من العناصر. يمكن أن تحتوي القوائم على أي نوع من البيانات، بما في ذلك أنواع البيانات المخصصة.
لإنشاء قائمة جديدة في Dart، يمكنك استخدام القوسين المربعين لتحيين العناصر بفواصل بينها. على سبيل المثال، لإنشاء قائمة تحتوي على أرقام صحيحة، يمكنك كتابة الكود التالي:
List<int> numbers = [1, 2, 3, 4, 5]; .
في هذا المثال، قمنا بإنشاء قائمة تسمى “numbers” وتحتوي على الأرقام من 1 إلى 5. تم تحديد نوع البيانات المتواجدة في القائمة بواسطة <int>. يمكنك الوصول إلى العناصر في القائمة باستخدام الفهرس (index) الخاص بكل عنصر. على سبيل المثال، للوصول إلى العنصر الثاني في القائمة “numbers”، يمكنك كتابة الكود التالي:
int secondNumber = numbers[1]; .
ستتم تعيين قيمة المتغير “secondNumber” إلى القيمة 2. بالإضافة إلى ذلك، يمكنك استخدام العديد من الوظائف الأخرى المتاحة للقوائم في Dart، مثل length للحصول على عدد العناصر في القائمة و add لإضافة عنصر جديد إليها و remove لإزالة عنصر من القائمة. يمكنك العثور على مزيد من المعلومات حول القوائم والوظائف المتاحة في توثيق Dart الرسمي.
الشكل العام Syntax
var list_name = new List(size)
أنواع القوائم في Dart
يمكن تصنيف القوئم إلى نوعين و هما:
قائمة الطول الثابت Fixed Length List.
قائمة قابلة للنمو Growable List.
مثال
void main() { var list1 = new List(5); list1[0] = 10; list1[1] = 11; list1[2] = 12; list1[3] = 13; list1[4] = 14; print(list1); }
في المثال أنشأنا قائمة متغيرة 1 تشير إلى قائمة حجمها ثابت. حجم القائمة هو 5 و أدخلنا العناصر المقابلة لمركز Index الخاص بها حيث يحتفظ المؤشر 0 بـ 10 و Index الأول يحمل 12 وهكذا.
عند تشغيل الكود
[10, 11, 12, 13, 14]
كيف يمكنني إضافة عنصر جديد إلى القائمة؟
يمكنك إضافة عنصر جديد إلى القائمة في Dart باستخدام الوظيفة add() المتاحة للقوائم. ستقوم هذه الوظيفة بإضافة العنصر الجديد إلى نهاية القائمة. فيما يلي مثال يوضح كيفية إضافة عنصر جديد إلى قائمة:
List<String> fruits = ['apple', 'banana', 'orange']; fruits.add('grape');
في هذا المثال، لدينا قائمة تسمى “fruits” تحتوي على ثلاث عناصر: ‘apple’، ‘banana’، و ‘orange’. ثم تم استخدام الوظيفة add() لإضافة عنصر جديد ‘grape’ إلى القائمة. بعد تنفيذ هذا الكود، ستصبح القائمة تحتوي على أربع عناصر.
تذكر أنه يمكنك استخدام add() لإضافة عناصر من أي نوع بيانات تحتاجه في القائمة. في المثال أعلاه، تم استخدام List<String> للإشارة إلى أن القائمة تحتوي على سلاسل النصوص، ولكن يمكنك استخدام أنواع بيانات أخرى حسب الحاجة.
يمكنك أيضًا استخدام العملية القصيرة لإضافة عنصر جديد إلى القائمة باستخدام عملية القائمة [] وتحديد الفهرس الجديد وتعيين قيمته. على سبيل المثال:
fruits[3] = 'grape'; .
هذا سيقوم بإضافة ‘grape’ إلى الفهرس الثالث في القائمة. يرجى ملاحظة أنه إذا كان الفهرس المحدد غير موجود في القائمة، فستحدث خطأ.
ما هي الوظيفة التي يمكنني استخدامها لحذف عنصر من القائمة؟
في لغة برمجة Dart، يمكنك استخدام الوظيفة remove() لحذف عنصر من القائمة. تستخدم هذه الوظيفة لإزالة أول حدوث للعنصر المحدد من القائمة.
لحذف عنصر معين من القائمة، يمكنك استخدام الوظيفة remove() وتقديم العنصر الذي ترغب في حذفه كمعامل للوظيفة. على سبيل المثال:
List<String> fruits = ['apple', 'banana', 'orange', 'grape']; fruits.remove('banana');
في هذا المثال، لدينا قائمة تسمى “fruits” تحتوي على عناصر ‘apple’، ‘banana’، ‘orange’، و ‘grape’. ثم تم استخدام الوظيفة remove() لحذف العنصر ‘banana’ من القائمة. بعد تنفيذ هذا الكود، ستصبح القائمة تحتوي على العناصر ‘apple’، ‘orange’، و ‘grape’.
إذا تم العثور على العنصر وتمت إزالته بنجاح، فإن الوظيفة remove() ستعيد true. وإذا لم يتم العثور على العنصر في القائمة، فسيتم إعادة false.
إذا كنت ترغب في حذف عنصر بناءً على الفهرس بدلاً من القيمة، يمكنك استخدام الوظيفة removeAt() وتحديد الفهرس كمعامل. على سبيل المثال:
List<int> numbers = [1, 2, 3, 4, 5]; numbers.removeAt(2);
في هذا المثال، تم استخدام الوظيفة removeAt() لحذف العنصر في الفهرس 2 من القائمة. بعد تنفيذ هذا الكود، ستصبح القائمة تحتوي على الأرقام 1، 2، 4، و 5.
هل يمكنني استخدام القوائم لتخزين أنواع البيانات المختلفة؟
نعم، يمكنك استخدام القوائم في Dart لتخزين أنواع البيانات المختلفة. في الواقع، يمكنك أن تضع أي نوع بيانات ترغب فيه في قائمة واحدة. عند تعريف قائمة في Dart، يمكنك تحديد نوع البيانات الذي ستحتويه القائمة. على سبيل المثال، يمكنك تعريف قائمة تحتوي على أنواع مختلفة عن طريق استخدام نوع البيانات dynamic أو استخدام نوع البيانات Object.
List<dynamic> myList = [1, 'hello', true, 3.14]; .
استخدام Object:
List<Object> myList = [1, 'hello', true, 3.14]; .
في المثالين أعلاه، تم إنشاء قائمة تسمى “myList” والتي تحتوي على أنواع بيانات مختلفة مثل الأعداد الصحيحة، السلاسل النصية، القيم البولية، والأعداد العشرية.
عند الوصول إلى العناصر في القائمة المحتوية على أنواع بيانات مختلفة، قد تحتاج إلى فحص نوع العنصر قبل استخدامه لتنفيذ الإجراءات المناسبة. يمكنك استخدام العمليات المناسبة لفحص نوع العنصر، مثل is و as و runtimeType.
مع ذلك، يجب أن تتذكر أن استخدام قوائم تحتوي على أنواع بيانات مختلفة قد يصعب فهم القائمة وقد يؤدي إلى صعوبة في صيانتها واستخدامها. يجب استخدام هذا النوع من القوائم بحذر وعناية لضمان تنظيمها وفهمها بشكل صحيح.