카테고리 없음

Day 8. [Java] 배열

조화이트 2023. 2. 22. 10:14
728x90

배열


배열이란, 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 의미한다.

변수를 개별적으로 선언한 경우 메모리 공간 상에 흩어져서 개별적으로 존재한다.

그러나 배열을 사용하여 값을 저장하는 경우 메모리 공간 상에 연속적으로 값들이 모여서 저장된다.

배열을 통해 값들을 묶어서 저장한다는 것은 메모리 공간 상에 물리적으로 값들을 모아서 저장하는 것을 의미한다.

배열이 가진 각 값들을 배열의 요소라고 하며, 배열의 각 요소가 부여받는 순번을 인덱스라고 한다.

1차원 배열


가장 일반적인 배열의 형태로 배열의 요소가 배열이 아닌 배열을 의미한다.

double[] temperatureOfJuly;
temperatureOfJuly = new double[31];

배열은 참조 타입이기 때문에 temperatureOfJuly는 선언 이후 생성될 배열의 주소값을 담을 참조 변수가 된다.

배열의 값은 참조변수 이름과 인덱스를 사용해 알 수 있다.

2차원 배열


1차원 배열과 차이점은 배열의 각 요소가 또 다른 배열이라는 것이다.

int[][] kcal;
kcal = new int[31][3];

가변 배열


2차원 이상의 다차원 배열에서는 보다 자유로운 형태로 배열을 만들 수 있다.

배열이 2차원 이상일 때, 마지막 차수에 해당하는 배열의 길이를 고정하지 않아도 되며 이러한 배열을 가변 배열이라고 한다.

int[][] ages = new int[5][];

//가변 배열의 내부 배열 생성1
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];

//가변 배열의 내부 배열 생성2
ages = {
	{ 30, 32, 39, 59, 23 },
	{ 31, 41, 52, 56, 72, 13 },
	{ 45, 32, 84, 23, 13, 42, 55 },
	{ 23, 41, 62, 63, 23, 51, 67, 98 },
	{ 13, 14, 15, 73, 34, 45, 65, 27, 34 }
};

배열 탐색


반복문을 통해 배열의 탐색이 가능하다.

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);
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

향상된 for문으로도 배열의 각 요소를 읽어올 수 있지만 값의 수정은 불가능하다.

728x90
반응형