04-21.1 2차원 배열이란?
Def) 2차원 배열: 배열의 배열
- 배열 표시를 두 번 적어서 나타낸다.
- 2차원 배열을 설정할 때도 똑같이 new라고 적고 배열크기를 지정한다.
- 배열이 두 개이니 배열 크기를 각각 지정한다.
04-21.2 배열 크기 지정
Ex)
<hide/>
public class ArrayExam2 {
public static void main(String[] args) {
int [][] array4 = new int[3][4];
array4[0][1] = 10;
}
}
Note)
- array4: 배열명
- int [ ][ ] array4 = new int[3][4]: (참조 변수: 0, 1, 2) , (인덱스: 0, 1, 2, 3)
- 2차원 배열은 반드시 대괄호 두 개로 인덱스를 두 개 지정해야 한다.
- array4[0][1] = 10 : 참조 변수 '0'의 1차원 배열에서 1번 인덱스에 10을 넣는다.
04-21.3 1차원 배열이 만들어지지 않는 경우
Ex)
<hide/>
public class ArrayExam2 {
public static void main(String[] args) {
int [][] array5 = new int[3][];
array5[0][0] = 10;
}
}
Note)
- int [][] array5 = new int[3][];
->이렇게 선언하면 참조 변수만 만들어지고 실제로 값을 담을 수 있는 1차원 배열은 만들어지지 않는다.
- array5[0][0] =10 을 넣으면 오류가 발생한다.
-> 배열의 참조 변수 '0'이 가리키는 1차원 배열이 없기 때문이다.
-> 따라서, 반드시 참조 변수가 가리킬 배열을 만들어줘야 한다.
04-21.4 참조변수에 1차원 배열
Ex)
<hide/>
public class ArrayExam2 {
public static void main(String[] args) {
int [][] array5 = new int[3][];
array5[0] = new int[1];
array5[0] = new int[2];
array5[0] = new int[3];
array5[0][0] = 10;
}
}
Note)
- 참조 변수'0'에는 한 개 짜리 int형 배열
- 참조 변수'1'에는 두 개 짜리 int형 배열
- 참조 변수'2'에는 세 개 짜리 int형 배열을 만들었다.
- 각각 길이가 다른 배열은 만들 수 있다.
04-21.5
- 2차원 배열도 1차원 배열과 마찬가지로 선언과 동시에 중괄호{}를 이용해서 초기화가능
- 선언과 동시에 값을 저장한다.
<hide/>
public class ArrayExam2 {
public static void main(String[] args) {
int [][] array6 = { {1}, {1, 2}, {1, 2, 3} };
System.out.println(array6[0][0]);
}
}
Note) 출력 결과: 1
- 다차원 배열도 마찬가지로 배열크기를 하나씩 증가시켜서 만들 수 있다.
04-21.6 2차원 배열 실습) 아래 코드를 똑같이 입력하여 실행결과 확인하라.
<hide/>
public class ArrayExam2 {
public static void main(String[] args) {
int [][] array = { {1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4} };
for(int i = 0; i < array.length; ++i) {
System.out.print( (i + 1)+"번째 줄을 출력합니다>" );
for(int j = 0; j < array[i].length;++j ) {
System.out.print( array[i][j]+" ");
}
System.out.println( );
}
}
}
Note) 차원에 따라 중첩되는 괄호가 늘어난다.
'Java > 모두의 자바' 카테고리의 다른 글
Chapter 05-23 클래스(Class) 선언 (0) | 2022.02.05 |
---|---|
Chapter 04-22 for each 문 (0) | 2022.02.04 |
Chapter 04-20 배열 사용하기 (0) | 2022.02.04 |
Chapter 04-19 배열(Array) 만들기 (0) | 2022.02.04 |
Chapter 03-18 for 문 (0) | 2022.02.04 |