Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

جزء من قسم 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;     // يحصل على عدد الأعمدة: 3
  • matrix.length يعيد عدد الصفوف
  • matrix[0].length يعيد عدد الأعمدة في الصف الأول

التحقق من الحدود:

قبل الوصول إلى عنصر ما، من الممارسات الجيدة التحقق مما إذا كانت الفهارس صالحة:

if (rowIndex >= 0 && rowIndex < matrix.length && 
    colIndex >= 0 && colIndex < matrix[0].length) {
    // من الآمن الوصول إلى matrix[rowIndex][colIndex]
}
challenge icon

التحدي

سهل

قم بإنشاء دالة باسم getElement تأخذ ثلاث معاملات:

  1. مصفوفة ثنائية الأبعاد من الأعداد الصحيحة تسمى matrix.
  2. عدد صحيح rowIndex يمثل فهرس الصف.
  3. عدد صحيح 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) {
        // اكتب كودك هنا
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow