Java의 배열 기본 다차원 배열 간단한 단어로 배열의 배열로 정의할 수 있습니다. 다차원 배열의 데이터는 테이블 형식(행 주요 순서)으로 저장됩니다.
통사론:
데이터 형식 [1차원][2차원][]..[N차원] 배열_이름 = 새로운 data_type [사이즈1][사이즈2]….[사이즈N];
어디:
- 데이터 형식 : 배열에 저장될 데이터 유형입니다. 예: int, char 등
- 치수 : 생성된 배열의 차원입니다. 예: 1D, 2D 등
- 배열_이름 : 배열 이름
- 사이즈1, 사이즈2, …, 사이즈N : 각각의 치수의 크기입니다.
예:
Two dimensional array: int[][] twoD_arr = new int[10][20]; Three dimensional array: int[][][] threeD_arr = new int[10][20][30];>
다차원 배열의 크기 : 다차원 배열에 저장할 수 있는 요소의 총 개수는 모든 차원의 크기를 곱하여 계산할 수 있습니다.
예를 들어: 배열 int[][] x = 새로운 int[10][20] 총 (10*20) = 200개의 요소를 저장할 수 있습니다. 마찬가지로, 배열 int[][][] x = 새로운 int[5][10][20] 총 (5*10*20) = 1000개의 요소를 저장할 수 있습니다.
다차원 배열의 응용
● 다차원 배열은 데이터를 표 형식으로 저장하는 데 사용됩니다. 예를 들어, 학생의 출석 번호와 성적을 저장하는 것은 다차원 배열을 사용하여 쉽게 수행할 수 있습니다. 또 다른 일반적인 사용법은 이미지를 3D 배열에 저장하는 것입니다.
● 동적 프로그래밍 질문에서는 문제의 상태를 표현하는 데 사용되는 다차원 배열이 사용됩니다.
● 이 외에도 행렬 곱셈, 그래프의 인접 행렬 표현, 그리드 검색 문제와 같은 많은 표준 알고리즘 문제에 적용됩니다.
2차원 배열(2D-Array)
2차원 배열은 다차원 배열의 가장 간단한 형태입니다. 2차원 배열은 이해하기 쉽도록 1차원 배열의 배열로 볼 수 있습니다.
간접적인 선언 방법:
- 선언 – 구문:
data_type[][] array_name = new data_type[x][y]; For example: int[][] arr = new int[10][20];>
- 초기화 – 구문:
array_name[row_index][column_index] = value; For example: arr[0][0] = 1;>
예: 1
리눅스 작업 관리자
자바
import> java.io.*;> public> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr => new> int> [> 10> ][> 20> ];> > arr[> 0> ][> 0> ] => 1> ;> > System.out.println(> 'arr[0][0] = '> + arr[> 0> ][> 0> ]);> > }> }> |
>
>산출
arr[0][0] = 1>
예: 4*4 행렬을 사용하여 기본값으로 2D 배열 구현
자바
public> class> TwoDArray {> > public> static> void> main(String[] args) {> > int> rows => 4> ;> > int> columns => 4> ;> > int> [][] array => new> int> [rows][columns];> > int> value => 1> ;> > for> (> int> i => 0> ; i for (int j = 0; j array[i][j] = value; value++; } } System.out.println('The 2D array is: '); for (int i = 0; i for (int j = 0; j System.out.print(array[i][j] + ' '); } System.out.println(); } } }> |
>
>산출
The 2D array is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16>
설명:
- 행과 열의 수는 행과 열 변수를 사용하여 지정됩니다. 2D 배열은 배열에 메모리를 할당하는 new 연산자를 사용하여 생성됩니다. 배열의 크기는 행과 열로 지정됩니다.
직접 신고 방법: 통사론:
data_type[][] array_name = { {valueR1C1, valueR1C2, ....}, {valueR2C1, valueR2C2, ....} }; For example: int[][] arr = {{1, 2}, {3, 4}};>
예:
자바
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > for> (> int> i => 0> ; i <> 2> ; i++)> > for> (> int> j => 0> ; j <> 2> ; j++)> > System.out.println(> 'arr['> + i +> ']['> + j +> '] = '> > + arr[i][j]);> > }> }> |
>
>산출
arr[0][0] = 1 arr[0][1] = 2 arr[1][0] = 3 arr[1][1] = 4>
2차원 배열의 요소에 액세스
2차원 배열의 요소는 일반적으로 다음으로 참조됩니다. x[i][j] 여기서 'i'는 행 번호이고 'j'는 열 번호입니다.
통사론:
x[row_index][column_index]>
예를 들어:
int[][] arr = new int[10][20]; arr[0][0] = 1;>
위의 예는 첫 번째 행과 첫 번째 열에 있는 요소를 나타냅니다. 메모 : 배열 크기가 N인 경우 배열에서 해당 인덱스는 0에서 N-1까지입니다. 따라서 row_index 2의 경우 실제 행 번호는 2+1 = 3입니다. 예:
자바
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > System.out.println(> 'arr[0][0] = '> + arr[> 0> ][> 0> ]);> > }> }> |
>
>산출
arr[0][0] = 1>
표 형식의 2D 배열 표현:
2차원 배열은 행 번호의 범위가 0에서 (x-1)이고 열 번호의 범위가 0에서 (y-1)인 'x' 행과 'y' 열이 있는 테이블로 볼 수 있습니다. 3개의 행과 3개의 열이 있는 2차원 배열 'x'가 아래에 표시됩니다.
자바의 회문
2D 배열을 표 형식으로 인쇄합니다.
2차원 배열의 모든 요소를 출력하려면 중첩된 for 루프를 사용하세요. 이를 위해서는 두 개의 for 루프가 필요합니다. 하나는 행을 순회하고 다른 하나는 열을 순회합니다.
예:
자바
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][] arr = { {> 1> ,> 2> }, {> 3> ,> 4> } };> > for> (> int> i => 0> ; i <> 2> ; i++) {> > for> (> int> j => 0> ; j <> 2> ; j++) {> > System.out.print(arr[i][j] +> ' '> );> > }> > System.out.println();> > }> > }> }> |
>
>산출
1 2 3 4>
예: 사용자 입력을 통한 2D 배열 구현
자바
import> java.util.Scanner;> public> class> Main {> > public> static> void> main(String[] args)> > {> > Scanner scan => new> Scanner(System.in);> > System.out.print(> 'Enter number of rows: '> );> > int> rows = scan.nextInt();> > System.out.print(> 'Enter number of columns: '> );> > int> columns = scan.nextInt();> > int> [][] multidimensionalArray=> new> int> [rows][columns];> > // Now you can use the array like a regular> > // 2-dimensional array> > for> (> int> i => 0> ; i for (int j = 0; j multidimensionalArray[i][j]= (i + 1) * (j + 1); } } for (int i = 0; i for (int j = 0; j System.out.print(multidimensionalArray[i][j]+ ' '); } System.out.println(); } scan.close(); } }> |
>
엑셀의 날짜 차이
>
산출
Enter number of rows: 3 Enter number of columns: 3 1 2 3 2 4 6 3 6 9>
- 이 코드는 사용자에게 2차원 배열의 행과 열 수를 입력하라는 메시지를 표시합니다. Scanner 클래스는 사용자 입력을 읽는 데 사용됩니다. 그런 다음 지정된 수의 행과 열을 사용하여 정수의 2차원 배열을 만들고 배열의 각 요소에 i*j를 할당합니다.
- 2차원 이상의 다차원 배열을 생성하려는 경우 배열의 배열 생성과 동일한 접근 방식을 사용할 수 있습니다. 예를 들어 3차원 배열을 만들려면 2차원 배열의 배열을 만들 수 있습니다.
3차원 배열(3D-Array)
3차원 배열은 다차원 배열의 복잡한 형태입니다. 3차원 배열은 이해하기 쉽도록 2차원 배열의 배열로 볼 수 있습니다.
간접적인 선언 방법:
- 선언 – 구문:
data_type[][][] array_name = new data_type[x][y][z]; For example: int[][][] arr = new int[10][20][30];>
- 초기화 – 구문:
array_name[array_index][row_index][column_index] = value; For example: arr[0][0][0] = 1;>
예:
자바
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr => new> int> [> 10> ][> 20> ][> 30> ];> > arr[> 0> ][> 0> ][> 0> ] => 1> ;> > System.out.println(> 'arr[0][0][0] = '> + arr[> 0> ][> 0> ][> 0> ]);> > }> }> |
>
>산출
arr[0][0][0] = 1>
직접 신고 방법: 통사론:
data_type[][][] array_name = { { {valueA1R1C1, valueA1R1C2, ....}, {valueA1R2C1, valueA1R2C2, ....} }, { {valueA2R1C1, valueA2R1C2, ....}, {valueA2R2C1, valueA2R2C2, ....} } }; For example: int[][][] arr = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} };>
예:
자바
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } }, { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > for> (> int> i => 0> ; i <> 2> ; i++)> > for> (> int> j => 0> ; j <> 2> ; j++)> > for> (> int> z => 0> ; z <> 2> ; z++)> > System.out.println(> 'arr['> + i> > +> ']['> > + j +> ']['> > + z +> '] = '> > + arr[i][j][z]);> > }> }> |
>
>산출
arr[0][0][0] = 1 arr[0][0][1] = 2 arr[0][1][0] = 3 arr[0][1][1] = 4 arr[1][0][0] = 5 arr[1][0][1] = 6 arr[1][1][0] = 7 arr[1][1][1] = 8>
3차원 배열의 요소에 접근하기
3차원 배열의 요소는 일반적으로 다음으로 참조됩니다. x[i][j][k] 여기서 'i'는 배열 번호, 'j'는 행 번호, 'k'는 열 번호입니다.
통사론:
x[array_index][row_index][column_index]>
예를 들어:
파이썬이 포함되어 있습니다
int[][][] arr = new int[10][20][30]; arr[0][0][0] = 1;>
위의 예는 선언된 3D 배열에서 첫 번째 배열의 첫 번째 행과 첫 번째 열에 있는 요소를 나타냅니다.
메모 : 배열 크기가 N인 경우 배열에서 해당 인덱스는 0에서 N-1까지입니다. 따라서 row_index 2의 경우 실제 행 번호는 2+1 = 3입니다.
예:
자바
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } }, { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > System.out.println(> 'arr[0][0][0] = '> + arr[> 0> ][> 0> ][> 0> ]);> > }> }> |
>
>산출
arr[0][0][0] = 1>
표 형식의 3D 배열 표현:
3차원 배열은 행 번호가 0부터 (x-1)까지이고 열 번호가 0부터 (y-1)까지인 'x' 행과 'y' 열이 있는 배열 테이블로 볼 수 있습니다. 3개의 행과 3개의 열을 포함하는 3개의 배열이 있는 3차원 배열은 다음과 같습니다.
표 형식으로 3D 배열을 인쇄합니다.
3차원 배열의 모든 요소를 출력하려면 중첩된 for 루프를 사용하세요. 이를 위해서는 세 개의 for 루프가 필요합니다. 하나는 배열을 순회하고, 두 번째는 행을 순회하고, 다른 하나는 열을 순회합니다.
예:
자바
import> java.io.*;> class> GFG {> > public> static> void> main(String[] args)> > {> > int> [][][] arr = { { {> 1> ,> 2> }, {> 3> ,> 4> } },> > { {> 5> ,> 6> }, {> 7> ,> 8> } } };> > for> (> int> i => 0> ; i <> 2> ; i++) {> > for> (> int> j => 0> ; j <> 2> ; j++) {> > for> (> int> k => 0> ; k <> 2> ; k++) {> > System.out.print(arr[i][j][k] +> ' '> );> > }> > System.out.println();> > }> > System.out.println();> > }> > }> }> |
>
>산출
1 2 3 4 5 6 7 8>
런타임 중 다차원 배열 삽입:
이 주제는 런타임 중에 사용자 정의 입력을 다차원 배열로 가져오도록 강제됩니다. 런타임 중에 사용자가 먼저 프로그램에 모든 입력을 제공하고 모든 입력이 입력된 후 프로그램은 그에 따라 각 입력에 대해 출력을 제공하는 데 중점을 둡니다. 사용자가 여러 다른 값을 가진 여러 테스트 사례에 대한 입력을 먼저 만들고 모든 작업이 완료된 후 프로그램이 출력 제공을 시작할 때 유용합니다. 예를 들어, 입력 배열에서 짝수와 홀수의 총 개수를 찾아보겠습니다. 여기서는 2차원 배열의 개념을 사용하겠습니다.
다음은 다가오는 코드에서 다양한 요소의 사용을 설명하는 몇 가지 사항입니다.
- 행 정수는 테스트 케이스의 수로 간주되고 열 값은 각 테스트 케이스의 값으로 간주됩니다.
- 하나의 for() 루프는 테스트 케이스 번호를 업데이트하는 데 사용되고 다른 for() 루프는 각 배열 값을 가져오는 데 사용됩니다.
- 모든 입력 입력이 완료되면 다시 두 개의 for() 루프를 동일한 방식으로 사용하여 지정된 조건에 따라 프로그램을 실행합니다.
- 입력의 첫 번째 줄은 총 TestCases 수입니다.
- 두 번째 줄에는 첫 번째 배열 값의 총 개수가 표시됩니다.
- 세 번째 줄은 배열 값 등을 제공합니다.
구현:
자바
import> java.io.*;> import> java.util.Scanner;> class> GFGTestCase {> > public> static> void> main(String[] args)> > {> > // Scanner class to take> > // values from console> > Scanner scanner => new> Scanner(System.in);> > // totalTestCases = total> > // number of TestCases> > // eachTestCaseValues => > // values in each TestCase as> > // an Array values> > int> totalTestCases, eachTestCaseValues;> > // takes total number of> > // TestCases as integer number> > totalTestCases = scanner.nextInt();> > // An array is formed as row> > // values for total testCases> > int> [][] arrayMain => new> int> [totalTestCases][];> > // for loop to take input of> > // values in each TestCase> > for> (> int> i => 0> ; i eachTestCaseValues = scanner.nextInt(); arrayMain[i] = new int[eachTestCaseValues]; for (int j = 0; j arrayMain[i][j] = scanner.nextInt(); } } // All input entry is done. // Start executing output // according to condition provided for (int i = 0; i // Initialize total number of // even & odd numbers to zero int nEvenNumbers = 0, nOddNumbers = 0; // prints TestCase number with // total number of its arguments System.out.println('TestCase ' + i + ' with ' + arrayMain[i].length + ' values:'); for (int j = 0; j System.out.print(arrayMain[i][j] + ' '); // even & odd counter updated as // eligible number is found if (arrayMain[i][j] % 2 == 0) { nEvenNumbers++; } else { nOddNumbers++; } } System.out.println(); // Prints total numbers of // even & odd System.out.println( 'Total Even numbers: ' + nEvenNumbers + ', Total Odd numbers: ' + nOddNumbers); } } } // This code is contributed by Udayan Kamble.> |
>
문자열.java의 값
>
산출:
Input: 2 2 1 2 3 1 2 3 Output: TestCase 0 with 2 values: 1 2 Total Even numbers: 1, Total Odd numbers: 1 TestCase 1 with 3 values: 1 2 3 Total Even numbers: 1, Total Odd numbers: 2 Input: 3 8 1 2 3 4 5 11 55 66 5 100 101 55 35 108 6 3 80 11 2 1 5 Output: TestCase 0 with 8 values: 1 2 3 4 5 11 55 66 Total Even numbers: 3, Total Odd numbers: 5 TestCase 1 with 5 values: 100 101 55 35 108 Total Even numbers: 2, Total Odd numbers: 3 TestCase 2 with 6 values: 3 80 11 2 1 5 Total Even numbers: 2, Total Odd numbers: 4>