728x90
반응형
다차원 배열
2차원 이상의 배열을 의미.
배열 요소로 또다른 배열을 가진다.
다차원 배열 선언
public class Array2D_01 {
public static void main(String[] args) {
//2차원 배열
int num; //int형 변수 -> 정수값 1개 저장
int[] arr1D; // int형 배열 -> int형 변수 여러개(묶음)
int[][] arr; //int형 2차원 배열 -> int형 배열 여러개(묶음)
//---------------------------------
arr = new int[2][3]; //2차원 배열 생성
//(int[3])[2]
//-> 2행 3열짜리 int형 표가 만들어진 것과 같다
arr[1][2] = 555; ///1번째행, 2번째열 요소
System.out.println(arr[1][2]);
//---------------------------------
//---- 배열의 선언 ---
int[] arr2; //추천
int arr3[];
int[][] arr4; //비추천
int[] arr5[];
int arr6[][];
}
}
Line 14를 보자. 2차원 배열을 생성했다. int[2][3] 을 풀어서 보자면 (int[3])[2]이다. 그러니까 길이가 3인 배열이 2개 있는 의미이다. 순서를 헷갈리지 말자. -> 배열이 2개가 있는데 각각의 배열에 길이가 3인 배열이 있다.
다차원 배열 초기화.
public class Array2D_02 {
public static void main(String[] args) {
//1차원 배열의 선언과 동시에 초기화
int[] arr1D = {1, 2, 3, 4, 5};
//2차원 배열의 선언과 동시에 초기화
int[][] arr2D = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
//3행 3열의 2차원 배열 생성
// -> 3x3 배열, 3 by 3 array
// -> 4x3 배열의 모든 값 출력하기
for(int i=0; i<4; i++) {
for(int j=0; j<3; j++) {
System.out.print(arr2D[i][j] + " "); //요소 출력
}
System.out.println(); //행마다 줄바꿈
}
System.out.println("--------------------");
//--------------------------------------
arr2D = new int[4][3]; //4행 3열 배열.
for(int i=0; i<4; i++ ) { //i행, 0~3
for(int j=0; j<3; j++) { //j열, 0~2
//2차원 배열에 값 대입하기
arr2D[i][j] = (i+1)*10 + (j+1);
}
}
//2차원 배열의 모든 값 출력
for(int i=0; i<4; i++) {
for(int j=0; j<3; j++) {
System.out.print(arr2D[i][j] + " "); //요소 출력
}
System.out.println(); //행마다 줄바꿈
}
}
}
윗 부분에 나온것처 선언과 동시에 초기화를 할 수가 있다.
아랫부분에 나온 것처럼 대입해야할 값이 많을 때 for문을 이용하여 대입할 수가 있다.
행마다 열의 길이가 일정하지 않을 수도 있다. 아래 코드를 확인해보자.
public class Array2D_03 {
public static void main(String[] args) {
int[][] arr; //2차원 배열 변수 선언
arr = new int[3][]; //배열 생성 -> int[]형 배열 -> int
arr[0] = new int[3]; //배열 생성 -> int형 배열 -> int[3]
arr[1] = new int[2]; //int[2]
arr[2] = new int[8]; //int[8]
//------------------------------------------------
System.out.println( "행의 길이 : " + arr.length ); //행의 길이
System.out.println("-----------------");
System.out.println( "0행의 길이 : " + arr[0].length ); //0행의 열 길이
System.out.println( "1행의 길이 : " + arr[1].length ); //1행의 열 길이
System.out.println( "2행의 길이 : " + arr[2].length ); //2행의 열 길이
System.out.println("-----------------");
//행마다 열의 길이가 일정하지 않은 2차원 배열의 전체 요소 출력
for(int i=0; i<arr.length; i++) { //i, 0~2
for(int j=0; j<arr[i].length; j++) { //j열, 0~2, 0~1, 0~7
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
================================
행의 길이 : 3
-----------------
0행의 길이 : 3
1행의 길이 : 2
2행의 길이 : 8
-----------------
0 0 0
0 0
0 0 0 0 0 0 0 0
반응형
'개발 > 자바' 카테고리의 다른 글
자바 추상클래스, 추상메소드 / 인터페이스 (0) | 2021.01.27 |
---|---|
자바 상속, Inheritance / 오버라이딩, Overriding / super / final / 다형성 / for each 구문 (0) | 2021.01.25 |
자바 배열 복사 (0) | 2021.01.20 |
자바 배열이란? // 배열 정렬, Bubble Sort (0) | 2021.01.19 |
자바 {맥북} 내가 자주 사용하는 이클립스 단축키 정리. (0) | 2021.01.17 |
댓글