본문 바로가기
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차원 배열에 대해서 알아보겠습니다.

 

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

반응형