العودة إلى الدورة

تعمق في المصفوفات (المصفوفات متعددة الأبعاد)

إتقان لغة Java: من الصفر إلى مطور محترف (رحلة من 50 درساً)

الدرس 29: تعمق في المصفوفات

تم تقديم المصفوفات في الدرس 7. هنا نستكشف المصفوفات متعددة الأبعاد والفئات المساعدة.

1. مراجعة المصفوفات أحادية البعد

  • حجم ثابت عند الإنشاء.
  • تحتوي على عناصر من نوع واحد.
  • تبدأ الفهرسة من 0 إلى الطول - 1.

java int[] numbers = {10, 20, 30}; System.out.println(numbers.length); // المخرج: 3

2. المصفوفات متعددة الأبعاد (مصفوفات داخل مصفوفات)

تُستخدم المصفوفات متعددة الأبعاد غالباً لتمثيل المصفوفات الرياضية أو الشبكات (مثل مصفوفات 2D).

التعريف والتهيئة

java // تعريف مصفوفة صحيحة بحجم 2x3 int[][] matrix = new int[2][3];

// تعيين القيم matrix[0][0] = 1; matrix[1][2] = 6;

// استخدام قائمة التهيئة: int[][] grid = { {1, 2, 3}, // الصف 0 {4, 5, 6} // الصف 1 };

System.out.println(grid[1][0]); // المخرج: 4

التكرار عبر مصفوفات 2D

يتطلب حلقات متداخلة:

java for (int i = 0; i < grid.length; i++) { // يمر عبر الصفوف for (int j = 0; j < grid[i].length; j++) { // يمر عبر الأعمدة System.out.print(grid[i][j] + " "); } System.out.println(); // سطر جديد بعد كل صف }

3. المصفوفات المتعرجة (Jagged Arrays)

لا يجب أن تكون المصفوفات في Java مستطيلة الشكل. يمكنك تعريف مصفوفات حيث يكون لكل مصفوفة داخلية طول مختلف.

java int[][] triangle = new int[3][]; triangle[0] = new int[1]; triangle[1] = new int[2]; triangle[2] = new int[3];

4. فئة java.util.Arrays

توفر هذه الفئة المساعدة دوالاً ثابتة ضرورية للتعامل مع المصفوفات، مثل الفرز والبحث والتحويل إلى نصوص.

java int[] arr = {3, 1, 2}; Arrays.sort(arr); // تصبح المصفوفة {1, 2, 3}

// طباعة محتويات المصفوفة بسرعة System.out.println(Arrays.toString(arr));