القوائم متعددة الأبعاد (Multi-Dimensional Lists) في Dart

القوائم متعددة الأبعاد (Multi-Dimensional Lists) في Dart

القوائم متعددة الأبعاد (Multi-Dimensional Lists) هي قوائم تحتوي على قوائم أخرى كعناصر. يمكن استخدامها لتنظيم البيانات في شكل جداول، مصفوفات، أو هياكل بيانات أكثر تعقيدًا.


1. إنشاء قائمة ثنائية الأبعاد (2D List)

أبسط شكل

يمكن إنشاء قائمة ثنائية الأبعاد من خلال وجود قوائم داخل قائمة رئيسية.

مثال:

dartCopyEdit<code>void main() {
  List<List<int>> matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
  ];

  print(matrix);
}
</code>
Dart
  • الإخراج:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Dart

الوصول إلى العناصر

للوصول إلى عنصر معين، نحتاج إلى تحديد فهرس الصف وفهرس العمود.

مثال:

void main() {
  List<List<int>> matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
  ];

  print('العنصر في الصف 1 والعمود 2: ${matrix[1][2]}'); // 6
}
Dart

2. التكرار على قائمة ثنائية الأبعاد

باستخدام حلقة for المتداخلة

void main() {
  List<List<int>> matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
  ];

  for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
      print('العنصر في الصف $i والعمود $j هو: ${matrix[i][j]}');
    }
  }
}
Dart

باستخدام حلقة forEach

void main() {
  List<List<String>> names = [
    ['Ali', 'Sara'],
    ['Mohamed', 'Nora'],
    ['Kamal', 'Lina']
  ];

  names.forEach((row) {
    row.forEach((name) {
      print(name);
    });
  });
}
Dart

3. إضافة عناصر إلى قائمة ثنائية الأبعاد

إضافة صف جديد

void main() {
  List<List<int>> matrix = [
    [1, 2, 3],
    [4, 5, 6]
  ];

  matrix.add([7, 8, 9]);
  print(matrix); // [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
}
Dart

إضافة عنصر إلى صف معين

void main() {
  List<List<int>> matrix = [
    [1, 2, 3],
    [4, 5]
  ];

  matrix[1].add(6);
  print(matrix); // [[1, 2, 3], [4, 5, 6]]
}
Dart

4. استبدال عناصر في قائمة ثنائية الأبعاد

استبدال صف كامل

void main() {
  List<List<int>> matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
  ];

  matrix[1] = [10, 11, 12];
  print(matrix); // [[1, 2, 3], [10, 11, 12], [7, 8, 9]]
}
Dart

استبدال عنصر معين

void main() {
  List<List<int>> matrix = [
    [1, 2, 3],
    [4, 5, 6]
  ];

  matrix[0][1] = 9;
  print(matrix); // [[1, 9, 3], [4, 5, 6]]
}
Dart

5. إنشاء قائمة ثلاثية الأبعاد (3D List)

مثال بسيط

void main() {
  List<List<List<int>>> cube = [
    [
      [1, 2],
      [3, 4]
    ],
    [
      [5, 6],
      [7, 8]
    ]
  ];

  print(cube); // [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
}
Dart

الوصول إلى عنصر في قائمة ثلاثية الأبعاد

void main() {
  List<List<List<int>>> cube = [
    [
      [1, 2],
      [3, 4]
    ],
    [
      [5, 6],
      [7, 8]
    ]
  ];

  print('العنصر في [1][1][1]: ${cube[1][1][1]}'); // 8
}
Dart

ملخص

  • القوائم متعددة الأبعاد توفر طريقة منظمة للتعامل مع البيانات المعقدة.
  • يمكن التكرار عليها باستخدام الحلقات التقليدية أو forEach.
  • تدعم Dart عمليات الإضافة، الإزالة، والاستبدال في القوائم متعددة الأبعاد بسهولة.