من خلال الدراسة في القسم السابق، نعلم أنه لا يوجد مفهوم للمصفوفات متعددة الأبعاد في Java، فقط المصفوفات أحادية البعد يمكننا أن نفهم المصفوفات متعددة الأبعاد كمصفوفات من المصفوفات، لذلك سيتم اشتقاق مصفوفة غير منتظمة .
على سبيل المثال، تحتوي المصفوفة العادية 4×3 ثنائية الأبعاد على 12 عنصرًا، لكن المصفوفة غير المنتظمة 4×3 ثنائية الأبعاد لا تحتوي بالضرورة على هذا العدد من العناصر. على سبيل المثال، قم بتهيئة مصفوفة غير منتظمة بشكل ثابت :
intArray[][]={{1,2},{3},{4,5,6},{7,8}};
نطلق على المصفوفات ذات البعدين وما فوق المصفوفات عالية الأبعاد، ثم تحتوي المصفوفة عالية الأبعاد أعلاه على 4 عناصر، لكن عدد عناصر المصفوفة منخفضة الأبعاد يختلف. المصفوفة الأولى تحتوي على عنصرين، والمصفوفة الثانية تحتوي على عنصر واحد، والمصفوفة الثالثة تحتوي على 3 عناصر، والمصفوفة الرابعة تحتوي على عنصرين، وهذا ما نسميه المصفوفة غير المنتظمة.
تعد تهيئة المصفوفة غير المنتظمة ديناميكيًا أكثر إزعاجًا، إذ لا يمكنها استخدام عبارة int[4][3] الجديدة مباشرةً، نحتاج إلى تهيئة المصفوفة عالية الأبعاد أولًا، ثم تهيئة المصفوفة منخفضة الأبعاد بشكل منفصل، على سبيل المثال:
intArray[][]=newint[4][];// تهيئة المصفوفة عالية الأبعاد أولاً إلى 4Array[0]=newint[2];// تهيئة المصفوفة منخفضة الأبعاد Array[1]=newint[1] ;Array[ واحد تلو الآخر 2]=newint[3];Array[3]=newint[2];
ثم بعد أن يقوم الكود أعلاه بتهيئة المصفوفة، يمكننا أن نعرف أنه لا يوجد 12 عنصرًا، بل 8 عناصر فقط، حيث تكون العناصر السفلية هي [0] [2]، [1] [1]، [1] [2] و [ 3] [2] غير موجود عندما نحاول الوصول إليها، سيتم طرح استثناء منخفض خارج الحدود .
ملاحظة : يتم طرح استثناء منخفض خارج الحدود (ArrayIndexOutOfBoundsException) عند محاولة الوصول إلى رمز منخفض غير موجود. على سبيل المثال، بافتراض أن المصفوفة أحادية البعد تحتوي على 12 عنصرًا، فإن التعبير Array[12] سيؤدي إلى استثناء منخفض خارج الحدود، وذلك لأن منخفض المصفوفة يبدأ من 0، ويجب أن يكون منخفض العنصر الأخير هو طول المصفوفة مطروحًا منه طول المصفوفة 1، وبالتالي فإن العنصر الذي يتم الوصول إليه بواسطة المصفوفة[12] غير موجود.