코드 스테이츠 8일차
배열
배열이란?
동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 의미합니다. 즉, 각 값들이 같은 의미를 지니면서 서로 연관성이 있을 때, 이들을 하나의 덩어리로 묶을 수 있으며, 이렇게 묶인 값들의 집합을 배열이라고 합니다.
배열의 차원이란?
배열과 관련하여 언급되는 ‘차원’이라는 것은 배열이 중첩된 정도를 의미합니다. 즉, 배열이 중첩되었다 함은, 배열의 요소가 또 다른 배열인 경우를 의미합니다.
- 1차원 배열 : 배열이 중첩이 없는 경우 = 배열의 요소가 배열이 아닌 경우
- 예 : { 1, 2, 3, 4 }
- 배열의 각 요소는 1, 2, 3, 4로 모두 정수형의 값입니다.
- 예 : { 1, 2, 3, 4 }
1 | 2 | 3 | 4 |
- 2차원 배열 : 배열이 한번 중첩된 경우 = 배열의 요소가 배열인 경우
- 예 : { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }
- 배열의 각 요소로 배열이 들어가 있습니다.
- 예 : { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
1차원 배열
1차원 배열은 가장 일반적인 배열의 형태로, 배열의 요소가 배열이 아닌 배열을 의미합니다.
1차원 배열을 선언할 때에는 다음과 같이 타입 뒤에 대괄호를 붙여서 선언하고 초기화할 수 있습니다.
double[] temperatureOfJuly;
temperatureOfJuly = new double[31];
2차원 배열
2차원 배열은 배열의 각 요소가 또 다른 배열인 구조일 뿐, 1차원 배열과 크게 다른 점은 없습니다.
2차원 배열을 선언하고 초기화하는 방법은 일차원 배열과 유사합니다.
int[][] kcal;
kcal = new int[31][3];
int[][] kcal = new int[31][3];//이렇게 한 줄로 줄여서 작성도 가능
가변 배열
2차원 이상의 다차원 배열에서는 1차원보다는 자유로운 형태로 배열을 만들 수 있습니다.
배열이 2차원 이상일 때, 마지막 차수에 해당하는 배열의 길이를 고정하지 않아도 되며, 이러한 배열을 가변 배열이라고 합니다.
가변 배열은 다음과 같이 선언하고 초기화할 수 있습니다.
int[][] ages = new int[5][];
new int[5][ ]에서, 외부 배열은 크기를 5로 지정했으나, 마지막 차수에 해당하는 내부 배열에는 크기를 지정하지 않았습니다. 이처럼 마지막 차수에 해당하는 배열의 크기를 지정하지 않으면 가변 배열이 생성됩니다.
이때 생성된 것은 내부 배열의 크기를 자유롭게 지정할 수 있는 외부 배열입니다. 즉, 외부 배열만 생성된 상태입니다.
내부 배열을 생성하려면 new int[]를 사용하여 외부 배열의 각 요소에 할당해 주면 됩니다.
int[][] ages = new int[5][];
ages[0] = new int[5];
ages[1] = new int[6];
ages[2] = new int[7];
ages[3] = new int[8];
ages[4] = new int[9];
배열 탐색
반복문을 활용하여 배열을 탐색할 수 있으며, 기본적으로 인덱스와 배열의 크기(length)를 활용하여 탐색한다는 점에서 문자열 탐색과 비슷합니다.
배열의 각 요소들의 총합을 구하는 예제를 통해 어떻게 반복문을 사용하여 배열을 탐색할 수 있는지 살펴보겠습니다. 예제에 사용될 배열은 아래와 같습니다.
int[] scores = { 100, 90, 85, 95, 100 };
일반적인 for문으로 배열을 순회하여 총합을 구하는 코드는 다음과 같습니다.
int[] scores = { 100, 90, 85, 95, 100 };
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
}
System.out.println(sum); // 470
while문을 통한 배열 순회는 다음과 같이 할 수 있습니다.
int[] scores = { 100, 90, 85, 95, 100 };
int sum = 0;
int i = 0;
while (i < scores.length) {
sum += scores[i++];
}
System.out.println(sum); // 470
'코드 스테이츠' 카테고리의 다른 글
코드 스테이츠 4/24 - 객체지향 프로그래밍 기초 2 (0) | 2023.04.24 |
---|---|
코드 스테이츠 4/21 - 객체지향 프로그래밍 기초 1 (0) | 2023.04.21 |
코드 스테이츠 4/19 - Java 기초 3 (0) | 2023.04.19 |
코드 스테이츠 4/18 - Java 기초 2 (0) | 2023.04.18 |
코드 스테이츠 04/17 - Java 기초 1 (0) | 2023.04.17 |