multidimensional arrays java 2d
Java의 다차원 배열에 대한이 자습서에서는 구문 및 코드 예제를 사용하여 Java에서 2d 및 3d 배열을 초기화, 액세스 및 인쇄하는 방법에 대해 설명합니다.
지금까지 우리는 1 차원 배열에 대한 주요 개념을 논의했습니다. 이러한 배열은 동일한 데이터 유형의 단일 시퀀스 또는 요소 목록을 저장합니다.
Java는 또한 차원이 두 개 이상인 배열을 지원하며이를 다차원 배열이라고합니다.
YouTube를 mp3로 변환하는 가장 쉬운 방법
Java 다차원 배열은 배열의 배열로 배열됩니다. 즉, 다차원 배열의 각 요소는 다른 배열입니다. 요소의 표현은 행과 열입니다. 따라서 행 크기와 열 크기를 곱하여 다차원 배열의 총 요소 수를 얻을 수 있습니다.
따라서 3x4의 2 차원 배열이있는 경우이 배열의 총 요소 수는 3x4 = 12입니다.
이 자습서에서는 Java의 다차원 배열을 살펴 봅니다. 3 차원 이상의 배열로 이동하기 전에 먼저 2 차원 배열에 대해 논의하겠습니다.
학습 내용 :
2 차원 배열
다차원 배열 중 가장 간단한 것은 2 차원 배열입니다. 2D 배열의 간단한 정의는 다음과 같습니다. 2D 배열은 1 차원 배열의 배열입니다.
Java에서 2 차원 배열은 행과 열의 형태로 저장되고 행렬 형태로 표현됩니다.
2 차원 배열의 일반적인 선언은 다음과 같습니다.
data_type () () array_name;
여기,
data_type = 배열에 저장 될 요소의 데이터 유형.
array_name = 2 차원 배열의 이름.
다음과 같이 new를 사용하여 2D 배열을 만들 수 있습니다.
data_type () () array_name = new data_type(row_size)(column_size);
여기,
row_size = 배열에 포함될 행 수.
column_size = 배열에 포함될 열 수.
따라서 3x3 배열이 있으면 3 개의 행과 3 개의 열이 있음을 의미합니다.
이 배열의 레이아웃은 다음과 같습니다.
행 / 열 | Column1 | Column2 | Column3 |
---|---|---|---|
행 1 | (0,0) | (0.1) | (0.2) |
행 2 | (1.0) | (1,1) | (1,2) |
행 3 | (2.0) | (2.1) | (2.2) |
위와 같이 행과 열의 각 교차점은 2D 배열의 요소를 저장합니다. 따라서 2d 배열의 첫 번째 요소에 액세스하려면 (0, 0)으로 지정됩니다.
노트 배열 크기가 3x3이므로이 배열에 9 개의 요소를 가질 수 있습니다.
3 행 2 열의 정수형 배열 'myarray'는 아래와 같이 선언 할 수 있습니다.
int ()() myarray = new int(3)(2);
배열이 선언되고 생성되면 값으로 초기화 할 때입니다.
2D 배열 초기화
값으로 2D 배열을 초기화하는 방법에는 여러 가지가 있습니다. 첫 번째 방법은 각 요소에 값을 할당하는 전통적인 방법입니다.
초기화의 일반 구문은 다음과 같습니다.
array_name(row_index)(column_index) = value;
예:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
위의 명령문은 주어진 2d 배열의 모든 요소를 초기화합니다.
프로그램에 넣고 출력을 확인합시다.
public class Main { public static void main(String() args) { int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1; System.out.println('Array elements are:'); System.out.println(myarray(0)(0) + ' ' +myarray(0)(1)); System.out.println(myarray(1)(0) + ' ' +myarray(1)(1)); } }
산출:
이 방법은 관련된 차원이 더 작을 때 유용 할 수 있습니다. 배열 차원이 커짐에 따라 요소를 개별적으로 초기화하는이 방법을 사용하는 것은 어렵습니다.
Java에서 2d 배열을 초기화하는 다음 방법은 선언시에만 배열을 초기화하는 것입니다.
이 초기화 방법의 일반적인 구문은 다음과 같습니다.
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
예를 들어, int 유형의 2x3 배열이 있으면 다음과 같이 선언을 사용하여 초기화 할 수 있습니다.
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
다음 예제는 초기화가있는 2d 배열 선언을 보여줍니다.
public class Main { public static void main(String() args) { //2-d array initialised with values int()() intArray = { { 1, 2 }, { 3, 4 },{5,6}}; //print the array System.out.println('Initialized Two dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { System.out.print(intArray (i)(j) + ' '); } System.out.println(); } } }
산출:
위의 프로그램에서 배열은 선언 자체에서 초기화되고 값이 표시됩니다.
아래와 같이 루프를 사용하여 2d 배열에 값을 초기화하거나 할당 할 수도 있습니다.
int()() intArray = new int(3)(3); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; } }
다음 프로그램은 위의 코드를 구현합니다.
public class Main { public static void main(String() args) { //declare an array of int int()() intArray = new int(3)(3); System.out.println('Array elements are:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; //assign values to each array element System.out.print(intArray(i)(j) + ' '); //print each element } System.out.println(); } } }
산출:
위 2d 배열의 각 요소에는 'i + 1'값이 할당됩니다. 이렇게하면 배열 행의 각 요소가 동일한 값을 포함하게됩니다.
2D 어레이 액세스 및 인쇄
2d 배열을 초기화 할 때 배열의 개별 요소를 값으로 초기화 할 수 있다는 것을 이미 알고 있습니다. 이것은 특정 요소에 액세스하기 위해 배열의 행 인덱스와 열 인덱스를 사용하여 수행됩니다.
초기화와 마찬가지로 개별 요소의 값에 액세스하여 사용자에게 인쇄 할 수도 있습니다.
배열 요소에 액세스하기위한 일반적인 구문은 다음과 같습니다.
data_typeval = array_name(row_index)(column_index);
여기서 array_name은 요소가 액세스 된 배열이고 data_type은 배열의 데이터 유형과 동일합니다.
다음 프로그램은 개별 요소에 액세스하고 인쇄하는 방법을 보여줍니다.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = {{1,2},{4,8}}; //Access individual element of array intval = intArray(0)(1); //print the element System.out.println('Accessed array value = ' + val); System.out.println('Contents of Array:' ); //print individual elements of array System.out.println(intArray(0)(0) + ' ' + intArray(0)(1)); System.out.println(intArray(1)(0) + ' ' + intArray(1)(1)); } }
산출:
이렇게하면 사각형 (()) 대괄호로 묶인 행 및 열 인덱스를 사용하여 개별 배열 요소에 쉽게 액세스하고 인쇄 할 수 있습니다.
for 루프를 사용하여 위와 같이 표 형식 (행렬 형식이라고도 함)으로 전체 배열을 한 번에 인쇄 할 수 있습니다. 이것은 2 차원 배열이므로이를 위해 두 개의 루프가 있어야합니다. 행을 반복하는 하나의 루프, 즉 외부 루프와 열을 가로 지르는 내부 루프.
주어진 순간 (현재 반복)에서 배열의 특정 요소는 다음과 같이 지정됩니다.
배열 _ 이름 (i) (j);
여기서‘i’는 현재 행이고‘j’는 현재 열입니다.
다음 프로그램은 'for'루프를 사용하여 2D 배열을 인쇄하는 것을 보여줍니다.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i*j; //assign value to each array element System.out.print(intArray (i)(j) + ' '); } System.out.println(''); } } }
산출:
위의 프로그램에서 2d 배열이 초기화되고 두 개의 for 루프를 사용하여 요소가 인쇄됩니다. 바깥 쪽은 행을 추적하는 데 사용되는 반면 내부 for 루프는 열을위한 것입니다.
Java 2d 배열 길이
2 차원 배열은 1 차원 배열의 배열로 정의됩니다. 따라서 2D 배열의 길이가 필요한 경우 1 차원 배열만큼 간단하지 않습니다.
2 차원 배열의 길이 속성은 배열의 행 수를 반환합니다. 각 행은 1 차원 배열입니다. 2 차원 배열이 행과 열로 구성된다는 것을 이미 알고 있습니다. 열 크기는 행마다 다를 수 있습니다.
따라서 행 수를 반복하여 각 행의 크기를 얻을 수 있습니다.
다음 프로그램은 배열의 길이 (행 수)와 각 행의 크기를 제공합니다.
public class Main { public static void main(String() args) { //initialize 2-d array int()() myArray = { { 1, 2, 3 }, { 4, 5 } }; System.out.println('length of array:' + myArray.length); //number of rows for(int i=0;i 산출:

위에 정의 된 2 차원 배열에는 두 개의 행이 있습니다. 각 행은 1 차원 배열입니다. 첫 번째 1D 배열에는 3 개의 요소 (3 개의 열)가 있고 두 번째 행에는 2 개의 요소가 있습니다.
다음 Java 프로그램은 2d 배열을 인쇄하기 위해 length 속성을 사용하는 방법을 보여줍니다.
public class Main { public static void main(String() args) { //two dimensional array definition int()() myarray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i 산출:

이미 언급했듯이 외부 루프는 행을 나타내고 내부 for 루프는 열을 나타냅니다.
노트 : 두 루프의 종료 조건은 길이 속성을 사용하여 먼저 행을 반복 한 다음 열을 반복합니다.
자바 다차원 배열
우리는 이미 2 차원 배열을 보았습니다. Java는 2 차원 이상의 배열을 지원합니다.
다차원 배열의 일반적인 구문은 다음과 같습니다.
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
여기,
d1, d2… dn = 다차원 배열의 차원
(d1_size) (d2_size)… (dn_size) = 치수의 각 크기
data_type = 배열 요소의 데이터 유형
array_name = 다차원 배열의 이름
2d 배열 이외의 다차원 배열이 하나 더있는 예로서 3 차원 (3d) 배열에 대해 자세히 설명하겠습니다.
자바의 3 차원 배열
우리는 이미 배열의 차원이 증가함에 따라 더 복잡 해지는 것에 대해 논의했습니다. 3 차원 배열은 다차원 배열에 대해 복잡합니다. 3 차원은 2 차원 배열의 배열로 정의 할 수 있습니다.
3 차원 배열의 일반적인 정의는 다음과 같습니다.
data_type () () () array_name = new data_type (d1)(d2)(d3);
여기,
d1, d2, d3 = 치수의 크기
data_type = 배열 요소의 데이터 유형
array_name = 3d 배열의 이름
3D 배열 정의의 예는 다음과 같습니다.
int () () () intArray = new int(2)(3)(4);
위의 3d 배열 정의는 2 개의 테이블 또는 배열, 3 개의 행과 4 개의 열로 구성되어 총 2x3x4 = 24 개 요소로 해석 될 수 있습니다.
즉, 3d 배열에서 3 차원은 다음과 같이 해석됩니다.
- 테이블 / 배열 수 : 첫 번째 차원은 3D 배열이 가질 테이블 또는 배열의 수를 나타냅니다.
- 행 수 : 두 번째 차원은 배열이 가질 총 행 수를 나타냅니다.
- 열 수 : 세 번째 차원은 3d 배열의 총 열을 나타냅니다.
3D 배열 초기화
3D 배열을 초기화하는 데 사용되는 접근 방식은 2 차원 배열 초기화에 사용되는 접근 방식과 동일합니다.
개별 배열 요소에 값을 할당하여 배열을 초기화하거나 선언 중에 배열을 초기화 할 수 있습니다.
아래 예제는 선언 동안 3d 배열의 초기화를 보여줍니다.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { { { 1, 2, 3}, { 4, 5, 6 } , { 7, 8, 9 } } }; System.out.println ('3-d array is given below :'); //print the elements of array for (int i = 0; i <1; i++) for (int j = 0; j < 3; j++) for (int z = 0; z < 3; z++) System.out.println ('intArray (' + i + ')(' + j + ')(' + z + ') = ' + intArray (i)(j)(z)); } }
산출:

선언 중에 3d 배열을 초기화 한 후 배열의 개별 요소에 액세스하여 인쇄했습니다.
액세스 및 3D 어레이 인쇄
다시 말하지만, 3 차원 배열에서 배열 요소를 인쇄하고 액세스하는 것은 2 차원 배열과 유사합니다.
아래 프로그램은 for 루프를 사용하여 배열 요소에 액세스하고 콘솔에 인쇄합니다.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() myArray = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 1, 4, 9 }, { 16, 25, 36 } }, { { 1, 8, 27 }, { 64, 125, 216 } } }; System.out.println('3x2x3 array is given below:'); //print the 3-d array for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { System.out.print(myArray(i)(j)(k) + ' '); } System.out.println(); } System.out.println(); } } }
산출:

위의 프로그램은 3 차원 배열의 표 형식을 표시합니다. 그림과 같이 3x2x3 배열로 테이블 3 개, 행 2 개, 열 3 개, 따라서 18 개의 요소가 있습니다.
열 크기는 다차원 배열에서 다를 수 있다는 것은 이미 언급되었습니다. 아래 예는 다양한 열 크기를 가진 3 차원 배열을 보여줍니다.
이 프로그램은 또한 향상된 for 루프를 사용하여 배열을 탐색하고 해당 요소를 표시합니다.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { {{10, 20, 30},{20, 40, 60}}, { {10, 30,50,70},{50},{80, 90}} }; System.out.println('Multidimensional Array (3-d) is as follows:'); // use for..each loop to iterate through elements of 3d array for (int()() array_2D: intArray) { for (int() array_1D: array_2D) { for(intelem: array_1D) { System.out.print(elem + ' '); } System.out.println(); } System.out.println(); } } }
산출:

사용 된 입력 배열은 다양한 길이의 열이있는 3 차원 배열입니다. 각 차원에 사용되는 각 루프에 대해 향상된 기능은 배열의 내용을 표 형식으로 표시합니다.
자주 묻는 질문
Q # 1) 2 차원 배열이란 무엇입니까?
대답: 2 차원 배열을 배열 배열이라고하며 일반적으로 행과 열로 구성된 행렬 형태로 구성됩니다. 2 차원 배열은 주로 관계형 데이터베이스 또는 유사한 데이터 구조에서 사용됩니다.
Q # 2) Java에서 1 차원 배열이란 무엇입니까?
대답: Java의 1 차원 배열은 인덱스가 하나 뿐인 배열입니다. 이것은 Java에서 가장 단순한 형태의 배열입니다.
Q # 3) 1 차원 배열과 2 차원 배열의 차이점은 무엇입니까?
대답: 1 차원 배열은 요소의 단일 시퀀스를 저장하고 인덱스가 하나만 있습니다. 2 차원 배열은 요소 배열의 배열을 저장하고 두 인덱스를 사용하여 해당 요소에 액세스합니다.
Q # 4) 2 차원이란 무엇을 의미합니까?
대답: 2 차원이란 2 차원 만있는 것을 의미합니다. 기하학적 세계에서 높이와 너비 만있는 개체는 2 차원 또는 2D 개체입니다. 이러한 개체에는 두께 나 깊이가 없습니다.
삼각형, 직사각형 등은 2D 개체입니다. 소프트웨어 측면에서 2 차원은 여전히 2 차원을 의미하며 일반적으로 1 차원, 2 차원 또는 그 이상의 차원을 가질 수있는 배열과 같은 데이터 구조를 정의합니다.
PC에서 mkv를 재생하는 방법
Q # 5) 배열에서 가장 먼저 나오는 것은 행 또는 열입니까?
대답: 2 차원 배열은 행렬로 표현되며 행렬은 일반적으로 행 x 열로 작성됩니다. 예를 들어, 크기가 2x3 인 행렬은 2 개의 행과 3 개의 열을 갖습니다. 따라서 2D 배열의 경우에도 행이 먼저 나오고 다음 열이 나옵니다.
결론
이것은 Java의 다차원 배열에 관한 것입니다. 우리는 2 차원 배열의 모든 측면과 2 차원 이상의 배열에 대해 논의했습니다.
다차원 배열의 경우 각 요소가 다른 배열이므로 일반적으로 배열이라고합니다. 따라서 배열이 다른 배열 또는 단순히 배열의 배열을 포함한다고 말할 수 있습니다.
다가오는 자습서에서는 배열에 대해 자세히 살펴본 다음 다른 컬렉션으로 넘어갈 것입니다.
추천 도서