إنشاء المصفوفات ثنائية الأبعاد 2D والوصول إليها
| English | العربية |
|---|---|
| 2-D array/tuː diː əˈreɪ/ | مصفوفة 2-D |
شبكة من القيم
- مصفوفة ثنائية الأبعاد 2 تخزن القيم في شبكة من الصفوف والأعمدة.
- أعلنها بقوسين:
int[][] grid = new int[3][4];(3 صفوف، 4 أعمدة). - أو بمُهيِّئ:
int[][] g = {{1, 2}, {3, 4}, {5, 6}};(3 صفوف من 2). - فكر في جدول بيانات، رقعة لعبة، أو صورة بكسلية.
صف ثم عمود
- الوصول لعنصر باستخدام فهرسين:
grid[row][col]. grid[0][0]هو أعلى يسار؛grid[1][2]هو صف1، عمود2.- يأتي الصف أولاً، ثم العمود — وهو أمر شائع أن يتم عكسه.
- كلا الفهرسين يبدأان من
0، مثل كل مصفوفة Java.
عددي الصف والعمود
grid.lengthهو عدد الصفوف.grid[0].lengthهو عدد الأعمدة (طول صف واحد).- بالنسبة لشبكة مستطيلة، كل صف له نفس عدد الأعمدة.
- استخدم هذين الطولين لتحديد حدود حلقات الشبكة.
حدان يجب مراقبتهما
- العنصر السليم هو
grid[r][c]مع0 <= r < grid.lengthو0 <= c < grid[0].length. - الخروج عن النطاق على أي فهرس يُسبب ArrayIndexOutOfBoundsException.
- خلط الصف والعمود يقرأ الخلية الخطأ بصمت (أو يسبب انهيار البرنامج).
- تحقق من ترتيب
[row][col]في كل مرة.
إنه grid[row][col] — الصف أولاً، ثم العمود — والطولان مختلفان. grid.length يعدّ الصفوف؛ grid[0].length يعدّ الأعمدة. تبديل الفهارس يقرأ الخلية الخطأ أو يُسبب استثناءً. عند التكرار، يتجه الفهرس الخارجي إلى grid.length والداخلي إلى grid[0].length.
شبكة 3×2 g = {{1, 2}, {3, 4}, {5, 6}}:
g[0][0]هو1؛g[2][1]هو6(صف 2، عمود 1).g.lengthهو3(صفوف)؛g[0].lengthهو2(أعمدة).g[1][0]هو3— صف1، عمود0.
مصفوفة ثنائية الأبعاد 2 هي شبكة، تُنشأ باستخدام new type[rows][cols] أو مبدئ أولي متداخل. للوصول إلى عنصر، استخدم grid[row][col] (الصف أولاً). grid.length هو عدد الصفوف؛ grid[0].length هو عدد الأعمدة. يبدأ كلا الفهرسين من 0، والخروج عن النطاق يثير استثناءً.
فهرسة grid[row][col]
g[2][1] = 6; g.length = 3 صفوف، g[0].length = 2 أعمدة.
بالنسبة لـ int[][] g = {{1,2},{3,4},{5,6}}؛ ما هي قيمة g[2][1]؟
الصف 2 هو {5,6}؛ العمود 1 هو 6.
في grid[row][col]، أي فهرس يأتي أولاً؟
الصف أولاً، ثم العمود.
بالنسبة لشبكة 3 صفوف و4 أعمدة، ماذا تساوي grid.length؟
grid.length هو عدد الصفوف = 3.
بالنسبة لشبكة 3 صفوف و4 أعمدة، ماذا تساوي grid[0].length؟
grid[0].length هو عدد الأعمدة = 4.
تعطي grid.length عدد الأعمدة.
grid.length هو الصفوف؛ grid[0].length هو الأعمدة.