القوائم متعددة الأبعاد (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
}
Dart2. التكرار على قائمة ثنائية الأبعاد
باستخدام حلقة 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);
});
});
}
Dart3. إضافة عناصر إلى قائمة ثنائية الأبعاد
إضافة صف جديد
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]]
}
Dart4. استبدال عناصر في قائمة ثنائية الأبعاد
استبدال صف كامل
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]]
}
Dart5. إنشاء قائمة ثلاثية الأبعاد (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 عمليات الإضافة، الإزالة، والاستبدال في القوائم متعددة الأبعاد بسهولة.