Page 20 -
P. 20
N으로 모두 같은 경우이다(즉 M×N 행렬과 같다). 자바에서 2차원 배열 생성은 단순하게 []를 더
표기하여 차원을 하나 더 늘리면 된다. 이 책에서는 i번째 열과 j번째 행을 a[i][j]와 같이 표기하
기로 한다.
2차원 배열 변수의 선언은 타입 뒤에 대괄호 [] 두 쌍을 표기하고, 배열의 생성을 위해서는 대괄호
안에 각각 행과 열의 크기를 표기한다.
double[][] a = new double[M][N];
이 책에서는 이러한 배열을 M×N 배열로 부르기로 한다. 관례로 첫 번째 차원은 열의 개수이고 두
번째 차원은 행의 개수이다. 1차원 배열과 마찬가지로, 자바에서는 2차원 배열이 숫자 타입인 경우
디폴트 값인 0으로(boolean 타입일 경우 false로) 초깃값을 채워준다. 디폴트 초기화는 2차원 배열에
서 더더욱 편리하다. 왜냐하면 2차원 배열을 초기화하기 위해서는 더 복합한 for 구문을 작성해야 하
기 때문이다. 한 줄짜리 2차원 배열 디폴트 초기화 선언과 동등한 작업을 직접 구현하면 다음과 같은
코드가 필요하다.
double[][] a;
a = new double[M][N];
for (int i = 0; i < M; i+ +)
for (int j = 0; j < N; j+ +)
a[i][j] = 0.0;
이 코드는 배열 항목들을 0으로 초기화하기 위해 중첩된 루프를 이용하고 있다. 초깃값으로 0이 아닌
다른 값을 가져야 한다면 디폴트 초기화를 이용할 수 없기 때문에 이와 같은 복잡한 코드를 작성해야
한다.
표 1-4 전형적인 배열 작업 코드
작업 구현(부분 코드)
배열 항목들 중에서 double max = a[0];
가장 큰 값 찾기 for (int i = 1; i < a.length; i+ +)
if (a[i] > max) max = a[i];
배열 항목들의 int N = a.length;
평균값 계산 double sum = 0.0;
for (int i = 0; i < N; i+ +)
sum += a[i];
double average = sum / N;
배열을 또 다른 배열로 복제 int N = a.length;
double[] b = new double[N];
for (int i = 0; i < N; i+ +)
b[i] = a[i];
032