الدرس 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));