Programing Language/Java

[Java] 자바의 배열(Arrays)

vinedpillar 2022. 5. 26. 22:03

배열

  • 배열이란 동일한 자료형을 묶어 저장하는 참조 자료형입니다.

  • 배열을 생성할 때는 반드시 크기를 지정해야하고, 한 번 지정하면 변경할 수 없습니다.
배열을 생성하는 방법

// 자료형[] 변수명
자료형[] 변수명 = new 자료형[생성하고자하는 배열의 크기];
int[] arr1 = new int[3];

// 자료형 변수명[]
자료형 변수명[] = new 자료형[생성하고자 하는 배열의 크기];
double arr2[] = new double[4];

 

  • 배열 선언 방법
    • 일반적으로 자료형, 변수의 표현방식의 일관성을 유지하기 위해 변수명에 대괄호([])를 붙이는 방식보다 자료형에 대괄호를 붙이는 방식을 많이 사용합니다.
    • 배열을 선언하면 해당 자료형으로 값을 입력할 수 있는 공간이 배열의 크기 개수만큼 생성됩니다.
    • 이러한 배열의 공간 번호를 인덱스(Index)라고 하며, 배열의 인덱스는 0부터 시작하여 1씩 증가합니다.
    • 배열을 생성할 때 값을 선언하지 않으면 기본값으로 자동 초기화합니다.
데이터 타입 초기 값
기본 타입 정수형 byte[] 0
short[] 0
int[] 0
long[] 0L
문자형 char[] '\u0000'
실수형 float[] 0.0F
double[] 0.0
논리형 boolean[] false
참조 타입 - class[] null
interface[] null

 

 

  • 배열 값 입력
선언된 배열에 값 입력하기

// 배열의 인덱스에 각 값을 넣어서 선언
자료형[] 변수명 = new 자료형[배열 크기]
int[] arr1 = new int[3];

arr1[0] = 3;
arr1[1] = 6;

// 3 출력
System.out.println(arr[0)];
// 6 출력
System.out.println(arr[1)];
// 0 출력(기본값)
System.out.println(arr[2)];


// 중괄호{}를 이용하여 한번에 삽입 가능
// 선언과 변수 대입을 나눠서 해도 무관
// 이 경우 중괄호에 입력하는 수에 따라 자동으로 크기가 지정
// 따라서 크기 부분을 반드시 비워두어야 함
// (입력할 경우 오류 발생)
int[] arr2 = new int[] {3, 6, 9, 12};

// 중괄호를 이용할 경우 new를 생략해도 가능
// 단 이경우에는 선언과 변수 대입을 나눌 수 없고 한번에 입력 필요
int[] arr3 = {2, 4, 6, 8, 0};

 

 

 

 

배열의 메모리 구조

  • 배열은 아래 그림과 같이 메모리에 저장됩니다.

  • 배열의 크기를 확인하려면 선언한 배열 변수.length 를 통해 확인할 수 있습니다.
    (도트(.) 연산자: 특정 객체의 하위 필드나 메서드를 불러오기 위해 사용되는 연산자)

 

  • 배열의 크기 활용
배열 크기(array.length) 활용 예시

int[] arr = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24};

// arr으로 선언된 int형 배열의 크기를 출력
// 12 출력
System.out.println(arr.length);

 

 

 

반복문을 활용하여 배열 내부 값 확인

  • 배열 내부의 값은 반복문을 활용해서 확인할 수 있습니다.
for문을 활용하여 배열 내부 값 확인

// 배열 선언
int[] arr = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25};

// 배열 내부 값을 하나씩 확인하는 프로그램
// 배열의 크기를 확인하는 .length를 통해 반복해야할 횟수(배열의 크기만큼) 지정
// 배열의 값이 인덱스 순으로 한 줄씩 띄워지면서 출력
for(int i = 0; i < arr.length; i++) {
	System.out.println(arr[i]);
}


// 배열 내부 값을 순차적으로 더하는 프로그램
// 반복문 외부에 합계를 저장할 변수를 지정
// sum 값은 169 출력
int sum = 0;
for(int i = 0; i < arr.length; i++) {
	sum += arr[i];
}
System.out.println(sum);

 

  • for-each문
    • 배열에서 반복문을 더 효율적으로 사용하기 위해 향상된 for문(for-each문)을 활용할 수 있습니다.
    • for-each문은 for문과 동일하게 for키워드를 사용하지만 for 내부의 조건식을 입력하는 방식이 조금 다릅니다.
    • for-each문의 기본 형태
for(원소 자료형 변수명: 배열 객체 변수) {
	
    반복할 실행문을 입력할 코드 블럭
    
}

 

향상된 for문 예시

// String 타입의 배열 선언
String[] count = {"one", "two", "three", "four", "five"};

// for-each문을 활용하여 반복문 작성
// one, two, three ... 가 한줄 씩 출력
for(String number: count) {
	System.out.println(number)
}