الوصول إلى عناصر المصفوفات ثنائية الأبعاد
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 2 من 59.
الوصول إلى العناصر في مصفوفة ثنائية الأبعاد (2D array) يشبه الوصول إلى العناصر في مصفوفة أحادية الأبعاد (1D array)، ولكن بدلاً من استخدام فهرس واحد، تستخدم فهرسين: أحدهما للصف والآخر للعمود. تذكر أن الفهارس في Java تبدأ من 0، لذا فإن الصف الأول يكون عند الفهرس 0، والصف الثاني عند الفهرس 1، وهكذا. وبالمثل، يكون العمود الأول عند الفهرس 0، والعمود الثاني عند الفهرس 1، وما إلى ذلك.
للوصول إلى عنصر، تحدد أولاً فهرس الصف ثم فهرس العمود، باستخدام الصيغة التالية:
arrayName[rowIndex][columnIndex]على سبيل المثال، للوصول إلى العنصر في الصف الثاني (الفهرس 1) والعمود الثالث (الفهرس 2) من مصفوفة ثنائية الأبعاد تسمى matrix، ستكتب:
int element = matrix[1][2];سيقوم هذا بتعيين قيمة العنصر الموجود في الصف 1، العمود 2 للمتغير element.
الحصول على أبعاد المصفوفة ثنائية الأبعاد:
تماماً مثل المصفوفات أحادية الأبعاد، يمكنك استخدام .length للحصول على أبعاد مصفوفة ثنائية الأبعاد:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
int numRows = matrix.length; // يحصل على عدد الصفوف: 2
int numCols = matrix[0].length; // يحصل على عدد الأعمدة: 3matrix.lengthيعيد عدد الصفوفmatrix[0].lengthيعيد عدد الأعمدة في الصف الأول
التحقق من الحدود:
قبل الوصول إلى عنصر ما، من الممارسات الجيدة التحقق مما إذا كانت الفهارس صالحة:
if (rowIndex >= 0 && rowIndex < matrix.length &&
colIndex >= 0 && colIndex < matrix[0].length) {
// من الآمن الوصول إلى matrix[rowIndex][colIndex]
}التحدي
سهلقم بإنشاء دالة باسم getElement تأخذ ثلاث معاملات:
- مصفوفة ثنائية الأبعاد من الأعداد الصحيحة تسمى
matrix. - عدد صحيح
rowIndexيمثل فهرس الصف. - عدد صحيح
colIndexيمثل فهرس العمود.
يجب أن تعيد الدالة العنصر الموجود في الصف والعمود المحددين في matrix. إذا كان rowIndex أو colIndex خارج الحدود (أي أقل من 0 أو أكبر من أو يساوي عدد الصفوف أو الأعمدة)، يجب أن تعيد الدالة -1.
ورقة مرجعية
للوصول إلى العناصر في مصفوفة ثنائية الأبعاد، استخدم فهرسين: واحد للصف وواحد للعمود. تبدأ الفهارس من 0.
الصيغة:
arrayName[rowIndex][columnIndex]مثال:
int element = matrix[1][2]; // يحصل على العنصر في الصف 1، العمود 2يمكنك استخدام .length للحصول على أبعاد مصفوفة ثنائية الأبعاد:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
int numRows = matrix.length; // يحصل على عدد الصفوف: 2
int numCols = matrix[0].length; // يحصل على عدد الأعمدة: 3جرّب بنفسك
// اكتب كودك فقط داخل الفئة (class). لا تكتب دالة main() أو أي كود خارج هذه الفئة.
class GetElement {
public static int getElement(int[][] matrix, int rowIndex, int colIndex) {
// اكتب كودك هنا
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم