본문 바로가기
JAVA/문법

자바 1차원 배열 선언, 초기화 방법 (array)

by 스코리아 2023. 8. 19.

안녕하세요, 스코리아입니다.

오늘은 자바에서 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);

배열 사용 예제 - 실행 결과

  1. new int[10]으로 배열의 사이즈가 10인 배열을 선언해 두었습니다.
  2. arr.length (배열. length)를 통해 배열의 사이즈를 가져올 수 있습니다. 0~9까지 for문을 반복합니다.
  3. ++num은 num을 1 더한 뒤, array[i]에 대입하는 형식입니다. 그러므로, arr[0] 에는 1이 저장될 것이고 arr[1] 에는 2가,... arr[9] 에는 10이 저장됩니다.
  4. 향상된 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);
}

배열 for문 작동 방식
배열 사용 예제2 - 실행 결과

 


지금까지 자바(Java) 1차원 배열의 의미(뜻)와 선언, 초기화 방법 그리고 사용하는 방법을 예제를 통해 알아보았습니다.

다음 시간에는 객체를 이용한 배열 사용방법과 2차원 배열에 대해서 알아보겠습니다.

 

읽어주셔서, 감사합니다.