이전 섹션의 연구를 통해 Java에는 다차원 배열이라는 개념이 없고 1차원 배열만 있다는 것을 알았습니다. 다차원 배열을 배열의 배열로 이해할 수 있으므로 불규칙한 배열이 파생됩니다.
예를 들어, 일반적인 4×3 2차원 배열에는 12개의 요소가 있지만 불규칙한 4×3 2차원 배열에는 반드시 그렇게 많은 요소가 있는 것은 아닙니다. 예를 들어, 불규칙한 배열을 정적으로 초기화합니다 .
intArray[][]={{1,2},{3},{4,5,6},{7,8}};
2차원 이상의 배열을 고차원 배열이라고 부릅니다. 그러면 위의 고차원 배열은 4개의 요소를 가지지만, 저차원 배열의 요소 수는 2개이고 두 번째 배열은 다릅니다. 1개의 요소가 있는 배열, 3개의 요소가 있는 세 번째 배열, 2개의 요소가 있는 네 번째 배열을 불규칙 배열이라고 합니다.
불규칙한 배열을 동적으로 초기화하는 것은 좀 더 번거롭습니다. 새로운 int[4][3] 문을 직접 사용할 수는 없습니다. 먼저 고차원 배열을 초기화한 다음 저차원 배열을 별도로 초기화해야 합니다.
intArray[][]=newint[4][];//먼저 고차원 배열을 초기화합니다. 4Array[0]=newint[2];//저차원 배열을 초기화합니다. Array[1]=newint[1] ;배열[ 하나씩 2]=newint[3];Array[3]=newint[2];
그런 다음 위의 코드가 배열을 초기화한 후에는 12개의 요소가 아니라 8개의 요소만 있음을 알 수 있습니다. 여기서 아래 첨자는 [0][2], [1][1], [1][2] 및 [입니다. 3][2]가 존재하지 않습니다. 액세스하려고 하면 범위를 벗어난 아래 첨자 예외가 발생합니다.
참고 : 존재하지 않는 첨자에 액세스하려고 하면 첨자 범위를 벗어난 예외(ArrayIndexOutOfBoundsException)가 발생합니다. 예를 들어, 1차원 배열 Array에 12개의 요소가 있다고 가정하면 Array[12] 표현식은 첨자 범위를 벗어난 예외를 발생시킵니다. 이는 배열 첨자가 0부터 시작하고 마지막 요소 첨자가 이어야 하기 때문입니다. 배열 길이에서 배열 길이를 뺀 값이 1이므로 Array[12]에서 액세스하는 요소가 존재하지 않습니다.