1. 들쭉날쭉한 배열

Java 프로그래머는 2차원 배열의 행을 교환할 수 있을 뿐만 아니라 원하는 대로 배열을 구성할 수도 있습니다.

2차원 배열의 첫 번째 행의 길이는 10이고 두 번째 행의 길이는 50. 우리가 할 수 있습니까? 그래 우리는 할 수있어.

먼저 '컨테이너 컨테이너'를 만들어야 합니다. 이것은 행 배열에 대한 참조를 저장할 첫 번째 배열입니다. 이것이 수행되는 방법입니다.

int[][] name = new int[height][];

두 번째 차원을 생략하면 Java 시스템이 컨테이너 컨테이너를 생성합니다. 이것은 이 코드를 실행한 후 메모리에 있는 것입니다.

Java의 들쭉날쭉한 배열

그리고 글쎄, 당신은 이미 1차원 배열을 만드는 방법을 알고 있습니다 🙂

결과 코드는 다음과 같습니다.

// Matrix of important data
int[][] matrix = new int[2][];
matrix[0] = new int[10];
matrix[1] = new int[50]
2차원 배열 0번째 행은 요소

의 배열입니다. 첫 번째 행은 요소 의 배열입니다.10
50

우리는 소위 " 들쭉날쭉한 배열 "을 만들었습니다.

이제 이 배열의 모든 요소를 ​​화면에 표시하려는 경우 배열의 length속성이 유용할 것입니다. 결국 배열 행의 길이가 다릅니다.

그런데, 우리의 예에서 '컨테이너의 컨테이너'의 길이는 어떻게 찾습니까? 또한 길이가 있음을 의미하는 배열 개체이기도 합니다. 정답은 입니다 matrix.length.

행을 구성하는 배열은 어떻습니까?matrix[0].length



2. 2차원 배열 작업

2차원 배열을 표시하려고 한다고 가정합니다. 어떻게 합니까?

우리의 코드는 다음과 같을 것입니다:

int[][] matrix = new int[3][];
matrix[0] = new int[]{1, 2, 3, 4, 5, 6};
matrix[1] = new int[]{1, 2, 3};
matrix[2] = new int[]{1};
for (int i = 0; i < matrix.length; i++) {
   for (int j = 0; j < matrix[i].length; j++)
      System.out.print( matrix[i][j] + " " );
   System.out.println();
}
배열 만들기
값으로 배열 채우기


배열의 행을 반복하는 외부 루프.
단일 행의 셀을 반복하는 내부 루프.

두 개의 중첩 루프가 필요합니다. 첫 번째는 outer 이고 두 번째는 inner 입니다 .

외부 루프( i변수)에서 2차원 배열을 구성하는 모든 행(배열)을 순차적으로 살펴봅니다. 의 각 값은 i해당 인덱스가 있는 행에 해당합니다.

내부 루프( j변수)에서 행의 모든 ​​셀을 반복합니다. 내부 루프 덕분에 하나의 1차원 배열 값으로 구성된 행이 화면에 표시됩니다.

다음과 같이 표시됩니다.

배열의 한 행이 처리됩니다.
1 2 3 4 5 6
배열의 두 행이 처리됩니다.
1 2 3 4 5 6
1 2 3
배열의 세 행이 처리됩니다.
1 2 3 4 5 6
1 2 3
1


3. 다차원 배열

배열에 대한 또 하나의 흥미로운 사실은 이미 짐작하셨을 것입니다. 2차원 배열을 만들 수 있다면 3차원 배열도 만들 수 있습니까?

예, 모든 차원의 배열을 만들 수 있습니다. 이러한 배열을 '다차원'이라고 합니다.

재미로 4차원의 다차원 배열을 만들어 봅시다.

int[][][][] matrix = new int[2][3][4][5];

이 코드는 너무 간단하지 않나요?

수동으로 생성하면 어떻게 될까요?

int[][][][] matrix;
matrix = new int[2][][][];                // Create a 2-element array of references to references to references
for (int i = 0; i < matrix.length; i++)
{
  matrix[i] = new int[3][][];                // Create a 3-element array of references to references
  for (j = 0; j < matrix[i].length; j++)
  {
    matrix[i][j] = new int[4][];             // Create a 4-element array of references
    for (k = 0; k < matrix[i][j].length; k++)
      matrix[i][j][k] = new int[5];          // Create 5-element arrays of integers
  }
}

그리고 그것은 단지 배열을 만드는 것입니다! 그런 다음 어떻게 든 작업해야합니다.

보너스 작업: 모든 값을 3차원 배열로 표시하는 코드를 작성하세요.