다차원 배열 Multidimensional Array
다차원 배열이란 2차원 이상의 배열을 의미하며, 배열 요소로 또 다른 배열을 가지는 배열을 의미
즉, 2차원 배열은 배열 요소로 1차원 배열을 가지는 배열
1. 기본 배열 생성
배열에 element 초기화(초기값) 반복문으로 넣기
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
System.out.println("출력값 : "+ i +", "+ j);
array[i][j] = 0;//0으로 초기화하기
}
}
Java
복사
2. 가변 배열 생성
배열 원소(element)마다 각기 다른 크기로 지정
int[][] array2 = new int[3][];
//배열 원소(element)마다 각기 다른 크기로 지정
array2[0] = new int[2];
array2[1] = new int[4];
array2[2] = new int[1];
//반복문으로 조회(초기값 넣지 않았으니,int형이라 0일거임)
//초기화 해볼까 20으로 다넣어보겠음.
for(int i=0;i< array2.length;i++){
for(int j=0;j<array2[i].length;j++){
array2[i][j] = 20;
System.out.println(array2[i][j]);
}
}
Java
복사
3. 생성, 초기화값 할당까지 한번에
직접 element 값을 입력하여 할당까지
int[][] array3 = {
{10, 20},
{10, 20, 30, 40},
{10}
};
// 조회해보자.for(int i=0;i<array3.length;i++){
for(int j=0;j<array3[i].length;j++){
System.out.println(array3[i][j]);
}
}
Java
복사
4. 최대값 구하기 연습
int[] arr = {3, 4, 8, 23, 1};
//최대값 초기화 세팅(아직 최대값 아님, 비교를 위해 기준점을 잡는다고 생각해야 된다.)
int max = arr[0];
//최대값 구하기 로직 - 하나씩 비교를 시작하자
for (int num:arr){
if(num>max){ //만약 idx[0]부터 시작해서 넣은 값인 num이, 초기화한 max보다 크면,
max = num; //num을 max에 넣자. 를 반복하는 것이 모든 element를 하나씩 점진적으로 비교.
}
}
System.out.println("idx 0 element를 초기값으로 설정하고 옆으로 하나씩 비교를 하고 맞으면 max에 넣었더니 최대값은 : "+max);
Java
복사
5. 최소값 구하기 연습
int[] arr2 = {51,2,15,123,6,19,9};
int min = arr2[0];
//일단 기준점을 idx[0]인 element 51을 기준으로 잡는다. 왜? for문을 idx 0부터 시작해서 비교할꺼니까.//만약 idx를 5처럼 중간에서 시작해버리면, for문이 애매해진다. 기본적으로 0부터 idx++로 1개씩 가는 로직이니까for(int element:arr2){
if(element<min){ // max를 구한 for문과 동일한 검색 방법. 배열의 요소를 하나씩 점진적으로 검사
min = element;
}
}
System.out.println(min);
Java
복사