5장
1. 배열의 기본 개념
배열(array): 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
요소(element): 생성된 배열의 각 저장공간
인덱스(index): 배열의 요소마다 붙여진 일련번호
길이(length): JVM이 모든 배열의 길이를 별도로 관리
배열이름.length로 길이 정보 접근
2. 배열의 선언과 생성


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