5장

1. 배열의 기본 개념

  • 배열(array): 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것

  • 요소(element): 생성된 배열의 각 저장공간

  • 인덱스(index): 배열의 요소마다 붙여진 일련번호

  • 길이(length): JVM이 모든 배열의 길이를 별도로 관리

    • 배열이름.length로 길이 정보 접근

2. 배열의 선언과 생성

png
png

3. 배열의 초기화

  • 배열은 선언과 동시에 자료형의 기본값으로 초기화

3.1. 자료형의 기본값

자료형
기본값

boolean

false

char

'\u0000'

byte, short, int

0

long

0L

float

0.0f

double

0.0d 또는 0.0

참조형

null

3.2. 초기화 예시

/*
==========================================================================
1. 1차원 배열의 초기화
==========================================================================
*/
// new int[] 사용
int[] arr = new int[]{1, 2, 3};

// new int[] 생략
int[] arr = {1, 2, 3};

// 선언과 생성을 따로 하면 new int[] 생략 불가
int[] arr;
arr = {50, 60, 70, 80, 90}; // 에러
arr = new int[]{50, 60, 70, 80, 90}; // OK

/*
==========================================================================
2. 2차원 배열의 초기화
==========================================================================
*/
// new int[][] 사용
int[][] arr = new int[][]{
  {1, 2, 3},
  {4, 5, 6}
};

// new int[][] 생략
int[][] arr = {
  {1, 2, 3},
  {4, 5, 6}
};

/*
==========================================================================
3. 문자열 배열의 초기화
- 원래 String은 클래스
- char 배열에 기능(메서드)를 추가한 것
(메서드는 객체지향 언어에서 '함수'대힌 사용하는 용어)
String 객체(문자열)는 읽을 수 있지만 char 배열처럼 내용 변경 불가
==========================================================================
*/
// new String[] 사용
String[] name = new String[3]{"A", "B", "C" };

// new String[] 생략
String[] name = {"A", "B", "C" };

// 개별 초기화
String[] name = new String[3];
name[0] = new String("A");
name[1] = "B"; // String은 클래스이나 특별히 허용

4. 배열의 출력

/*
==========================================================================
1. 1차원 배열 출력
==========================================================================
*/
// 반복문 사용
int[] iArr = {1, 2, 3, 4, 5};
for (int i=0; i<iArr.length; i++) {
  System.out.println(iArr[i]); // "1" 부터 "5"까지 하나씩 출력
}

// Arrays.toString(배열이름) 메서드 사용
import java.util.Arrays;

System.out.println(Arrays.toString(iArr)); // "[1, 2, 3, 4, 5]" 출력

// 배열이름 접근 시 타입@주소 형식으로 출력
System.out.println(iArr); //  "[I@2a139a55" 출력


// 문자 배열
import java.util.Arrays;

char[] chArr = {'a', 'b', 'c', 'd'}; 
System.out.println(Arrays.toString(chArr)); // "[a, b, c]" 출력
System.out.println(chArr); // "abc" 출력

/*
==========================================================================
2. 2차원 배열 출력
==========================================================================
*/
// 반복문 사용
int[] iArr = {
  {1, 2, 3},
  {4, 5, 6}
};
for (int i=0; i<iArr.length; i++) {
  for (int j=0; j<iArr[0].length; j++) {
    System.out.println(iArr[i][j]); // "1" 부터 "6"까지 하나씩 출력
  }
}


// Arrays.toString(배열이름) 메서드 사용
import java.util.Arrays;

int[][] iArr = {
    {1, 2, 3},
    {4, 5, 6}
};
for (int i=0; i<iArr.length; i++) {
    System.out.println(Arrays.toString(iArr[i])); // "[1, 2, 3]" 부터 "[4, 5, 6]" 출력
}

// 배열이름 접근 시 타입@주소 형식으로 출력
import java.util.Arrays;

System.out.println(Arrays.toString(iArr)); // "[[I@2a139a55, [I@15db9742]" 출력
System.out.println(iArr); //  "[I@2a139a55" 출력

참고 자료

  • 자바의 정석 - 도우출판

Last updated