728x90
2차원 배열
2차원 배열은 배열의 배열, 즉 행(row)과 열(column)로 이루어진 배열이다.
2차원 배열은 주로 행렬(matrix)이나 테이블(table) 형식의 데이터를 다룰 때 사용된다.
각 요소는 두 개의 인덱스를 통해 접근할 수 있으며, 첫 번째 인덱스는 행을, 두 번째 인덱스는 열을 가리킴
int[][] arr;
2차원 배열은 대괄호[] 2개를 사용하여 선언한다.
첫번째 대괄호 == 행
두번째 대괄호 == 열
고로 첫번째로 행을 찾고 두번째론 열을 찾는 방식이다.
💻 2차원 배열 예제
package array;
public class ArrayDi0 {
public static void main(String[] args) {
// 2x3 2차원 배열을 만들기
int[][] arr = new int[2][3]; // 2행 3열
arr[0][0] = 1; // 0행 0열
arr[0][1] = 2; // 0행 1열
arr[0][2] = 3; // 0행 2열
arr[1][0] = 4; // 1행 0열
arr[1][1] = 5; // 1행 1열
arr[1][2] = 6; // 1행 2열
//0행 출력
System.out.print(arr[0][0] + " ");
System.out.print(arr[0][1] + " ");
System.out.print(arr[0][2] + " ");
System.out.println(); // 한 행이 끝나면 라인을 변경
//1행 출력
System.out.print(arr[1][0] + " ");
System.out.print(arr[1][1] + " ");
System.out.print(arr[1][2] + " ");
}
}

💻 배열 리팩토링
위 코드를 보면 행이 반복된다. 이 코드를 개선해보자
package array;
public class ArrayDi1 {
public static void main(String[] args) {
// 2x3 2차원 배열을 만들기
int[][] arr = new int[2][3]; // 2행 3열
arr[0][0] = 1; // 0행 0열
arr[0][1] = 2; // 0행 1열
arr[0][2] = 3; // 0행 2열
arr[1][0] = 4; // 1행 0열
arr[1][1] = 5; // 1행 1열
arr[1][2] = 6; // 1행 2열
for(int row = 0; row < 2; row++){
System.out.print(arr[row][0] + " ");
System.out.print(arr[row][1] + " ");
System.out.print(arr[row][2] + " ");
System.out.println(); // 라인 변경
}
}
}
for문을 통해 행을 반복해서 접근했다. 코드가 1/2로 줄었다...
근데 여기서 3열 선언한 부분도 더 줄일 수 있다. 어차피 [row][n]의 n 숫자만 0 -> 1 -> 2로 바뀌고 있으니 이것도 바꿔보자
for(int row = 0; row < 2; row++){
for(int column = 0; column < 3; column++ ){
System.out.print(arr[row][column] + " ");
}
System.out.println(); // 라인 변경
}
이중포문을 사용했다.
column변수도 생성하여 열을 ++해주는 식으로 코드를 한줄로 줄였다.
첫번째 for문은 행을 탐색하고 두번째 for문은 열을 탐색한다.
이 코드에서 row < 2 부분은 배열.length를 사용할 수도 있다.
for(int row = 0; row < arr.length; row++){
~~~~
}
또한 columnq부분도 .length를 사용할 수 있다.
for(int column = 0; column < arr[row].length; column++ ){
여기서 더 줄일 수 있는 부분이 있다.
배열을 초기화하는 코드이다.
int[][] arr = new int[][]{
{1,2,3}, // 0행
{4,5,6} // 1행
}; // 2행 3열
이렇게 아예 값을 선언하고 시작하는 방식을 사용하면 코드를 더 간결하게 만들 수 있다.
첫번째 {}는 0행이고 두번째 {}는 1행이다.
값이 3개 들어갔으니(인덱스로는 0,1,2) 3열임도 알 수 있다.
'Coding > JAVA' 카테고리의 다른 글
| [JAVA] 배열의 역순 출력 (0) | 2024.08.02 |
|---|---|
| [JAVA] 향상된 for문(for-each문) (0) | 2024.06.23 |
| [JAVA]배열 리팩토링 - 1차원 배열 생성 및 초기화 (0) | 2024.06.23 |
| [JAVA]배열 특징/예제 (0) | 2024.06.22 |
| [JAVA]임시 변수 temp (0) | 2024.06.06 |