Através do estudo da seção anterior, sabemos que não existe conceito de arrays multidimensionais em Java, apenas arrays unidimensionais. Podemos entender arrays multidimensionais como arrays de arrays, portanto, um array irregular será derivado.
Por exemplo, uma matriz bidimensional 4×3 regular possui 12 elementos, mas uma matriz bidimensional 4×3 irregular não possui necessariamente tantos elementos. Por exemplo, inicialize estaticamente um array irregular:
intArray[][]={{1,2},{3},{4,5,6},{7,8}};
Chamamos arrays de duas dimensões e acima de arrays de alta dimensão. Então o array de alta dimensão acima tem 4 elementos, mas o número de elementos do array de baixa dimensão é diferente. tem 1 elemento, o 3º array tem 3 elementos e o 4º array tem 2 elementos. Isso é o que chamamos de array irregular.
Inicializar dinamicamente um array irregular é um pouco mais problemático. Ele não pode usar diretamente a nova instrução int[4][3]. Precisamos inicializar o array de alta dimensão primeiro e, em seguida, inicializar o array de baixa dimensão separadamente, por exemplo:
intArray[][]=newint[4][];//inicialize o array de alta dimensão primeiro para 4Array[0]=newint[2];//inicialize o array de baixa dimensão Array[1]=newint[1] ;Array[ um por um 2]=newint[3];Array[3]=newint[2];
Então, após o código acima inicializar o array, podemos saber que não existem 12 elementos, mas apenas 8 elementos, onde os subscritos são [0][2], [1][1], [1][2] e [ 3][2] não existe. Quando tentarmos acessá-los, uma exceção de subscrito fora dos limites será lançada.
Nota : A exceção fora dos limites do subscrito (ArrayIndexOutOfBoundsException) é lançada ao tentar acessar um subscrito inexistente. Por exemplo, supondo que um array unidimensional Array tenha 12 elementos, então a expressão Array[12] causará uma exceção de subscrito fora dos limites. Isso ocorre porque o subscrito do array começa em 0 e o último subscrito do elemento deve ser o. comprimento do array menos o comprimento do array 1, então o elemento acessado por Array[12] não existe.