배열안에 또, 배열이 있을 수 있습니다.
일차원 배열
int []a = new int[5];
와 같은 경우를 일차원배열이라고 합니다.
이차원 배열
만약에 5개짜리 정수형 변수가 3묶음 필요하다면 다음과 같이 표현할 수 있습니다.
int [][]a = new int[3][5];
위의 경우를 2차원 배열이라고 하며 2차원 배열이상을 "다차원배열"이라고 합니다.
"5칸짜리 정수형 변수가 3줄 있다"
즉 정수형 변수가 15개가 만들어 집니다. 이것을 보통 행,열로 이야기 합니다. 3행, 5열의 이차원배열이라고 합니다.
위의 이차원 배열을 일괄처리 하려면 중첩반복문을 이용해야 합니다.
행을 위한 반복문안에서 열을 위한 반복문이 돌아야 합니다.
삼차원 배열
만약에 5칸짜리 정수형 변수가 3묶음 있고 그런것이 2장 필요하다면 다음과 같이 표현할 수 있습니다.
int [][][]a = new int[2][3][5];
위의 경우를 삼차원배열 이라고 합니다. 2면,3행,5열으로 생각 하면 되겠습니다.
이것을 일괄처리하기 위해서는 세개의 중첩 반복문을 이용해야 합니다.
일반적으로 특별한 경우가 아니면 삼차원배열 이상은 잘 사용하지 않습니다.
배열의 단점
자료형이 같아야 한다.
크기가 고정되어 있다.
int []a = new int[5];
라고 해 두면 int 밖에 담을 수 없고 5개 밖에 담을 수 없습니다.
사용자가 어떤 자료형을 담을지 또, 몇개를 담을지 예측하기 어려운 경우에는 배열을 사용하기에는 불편합니다.
이러한 배열을 단점을 보완하기 위하여 자바는 "향상된 배열"인 "컬렉션 프레임워크"를 제공합니다.
따라서 기본자료형의 배열보다는 컬렉션 프레임워크를 사용하는것이 더 일반적입니다.
자바의 이차원배열에서는 각 행마다 열의 크기가 다를 수 있습니다.
int [][]a = {{1,2},{3,4,5,6},{7,8,9}};
그러면, 이거 일괄처리를 어떻게 하나요?
for(int i=0; i<3; i++){
for(int j=0; j < a[i].length ; j++){
}
}
자바에서는 각 행마다 열의 크기가 다를 수 있으므로 배열의 길이를 위한 속성을 사용합니다.
2차원 배열명인 a.length는 3입니다.
2차원 배열의 첫번째 요소인 a[0].length은 2입니다.
두번째 요소인 a[1].length는 4입니다.
'프로그래밍 공부 정리 > java' 카테고리의 다른 글
아스키코드 (0) | 2021.10.20 |
---|---|
참조자료형, 메소드,return (0) | 2021.10.19 |
반복문: while문, do while문,for each반복문 (0) | 2021.10.17 |
Break와 Continue (0) | 2021.10.16 |
배열 (0) | 2021.10.15 |