안녕하세요, 스코리아입니다.
오늘은 자바에서 1차원 배열을 선언하고 초기화하는 방법에 대해서 알아본 뒤, 이를 예제를 통해 사용해 보겠습니다.
배열 (array)란?
- 동일한 자료형의 순차적 자료 구조
- 연관된 데이터를 모아서 관리하기 위한 데이터 타입
- 변수 vs 배열? : 변수는 한 개의 데이터를 저장한다면, 배열은 여러 개의 데이터를 저장합니다.
배열의 특징
- 인덱스 연산자 []를 이용하여 빠른 참조가 가능
- 배열의 인덱스(index)는 0부터 시작
- 물리적 위치와 논리적 위치가 동일
- 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함
배열 선언 + 초기화 (1)
int[] arr1 = new int[10]; // 방법1
int arr2[] = new int[10]; // 방법2
배열은 위와 같은 방법 2가지로 선언, 초기화가 가능합니다. new int [숫자]에서 숫자는 배열의 길이(array length)를 뜻합니다.
- int는 4바이트입니다.
- int 배열의 길이가 10이므로 4byte x 10 = 40byte가 배열 전체의 바이트가 됩니다.
배열 선언 + 초기화 (2)
- 위와 같이 배열을 선언만 하고, 값을 나중에 추가하는 방법도 있지만, 배열을 선언하는 시점에 초기값을 설정하는 방법이 있습니다.
- 배열을 초기화하지 않는다면, 자료형에 따라 자동으로 초기화되는데, 정수는 0, 실수는 0.0, 객체는 null로 자동 초기화됩니다.
- 이번에는 배열 선언과 동시에 초기값을 설정하는 방법을 알아보겠습니다.
int[] numbers = new int[] {10, 20, 30}; // 개수 생략해야 함
int[] numbers = {10, 20, 30}; // <추천방법> new int[] 생략 가능
int[] ids;
ids = new int[] {10, 20, 30}; // 선언후 배열을 생성하는 경우는 new int[] 생략할 수 없음
- 첫 번째 방법에서 new int []를 생략하여 2번째 방법처럼 사용이 가능합니다.
- 세 번째 방법처럼 선언 후 배열을 생성하는 경우는 new int []를 생략할 수는 없습니다.
배열 사용하기 (예제)
int[] arr = new int[10];
int total = 0, num = 0;
for(int i=0; i<arr.length; i++){
arr[i] = ++num;
}
for(int i : arr) { // 향상된 for문
total += i;
}
System.out.println(total);
- new int[10]으로 배열의 사이즈가 10인 배열을 선언해 두었습니다.
- arr.length (배열. length)를 통해 배열의 사이즈를 가져올 수 있습니다. 0~9까지 for문을 반복합니다.
- ++num은 num을 1 더한 뒤, array[i]에 대입하는 형식입니다. 그러므로, arr[0] 에는 1이 저장될 것이고 arr[1] 에는 2가,... arr[9] 에는 10이 저장됩니다.
- 향상된 for문은 'for(int i=0; i<arr.length; i++)'와 동일합니다. 이 for문을 이용하여, total에 arr 배열의 모든 값을 더하고 이를 출력합니다. 1~10을 더한 값은 55입니다.
향상된 for문은 배열의 n개 요소를 0부터 n-1까지 순차적으로 순회할 때 간단하게 사용할 수 있습니다.
배열 선언 시 주의사항
- 배열의 크기를 너무 크게 설정하면 불필요한 메모리가 낭비될 수 있으므로, 사용할 만큼만 설정해야 합니다.
- 배열을 선언하면 개수만큼 메모리가 할당되지만, 실제 요소(data)가 없는 경우도 있습니다. 즉, 아직 데이터가 몇 개 없는 상태라면, 배열의 길이와 요소의 개수는 동일하지 않다고 볼 수 있습니다. 배열의 length를 통해 for문을 돌릴 때 오류가 나는 경우를 주의해 주세요.
배열 사용하기 (예제 2)
문자열 배열(char array)을 만들어 A부터 Z까지 저장하고 이를 출력해 봅시다.
char[] alpahbets = new char[26];
char ch = 'A';
for(int i=0; i<alpahbets.length; i++) {
alpahbets[i] = ch++;
}
for(char alpha : alpahbets) {
System.out.println(alpha + ","+ (int)alpha);
}
지금까지 자바(Java) 1차원 배열의 의미(뜻)와 선언, 초기화 방법 그리고 사용하는 방법을 예제를 통해 알아보았습니다.
다음 시간에는 객체를 이용한 배열 사용방법과 2차원 배열에 대해서 알아보겠습니다.
읽어주셔서, 감사합니다.
'JAVA > 문법' 카테고리의 다른 글
자바 ArrayList 주요 메소드 정리, 사용방법 (3) | 2023.08.23 |
---|---|
자바 2차원 배열 선언, 초기화 방법 (array) (1) | 2023.08.22 |
자바 객체 배열 선언/구현하기 + 얕은복사, 깊은복사 방법 (1) | 2023.08.21 |
자바 기본형 타입 vs 참조형 타입 차이점 정리 (1) | 2023.08.11 |