자료형[] 배열_이름 = new 자료형[크기]; 자료형 배열_이름[] = new 자료형[크기];
배열을 이루는 각각의 자료를 배열 요소라고 한다. 배열 요소는 자료형이 모두 같다. 배열은 같은 자료형을 순서대로 관리할 때 사용하는 자료구조이다.
'배열형'자료란 의미로 아래와 같은 선언방식을 주로 사용한다.
자료형[] 배열_이름 = new 자료형[크기];
배열을 선언하면 그와 동시에 각 요소의 값이 초기화된다. 정수는 0, 실수는 0.0, 객체 배열은 null로 초기화된다.
int[] studentIds = new int[] {101, 102, 103}; //크기 생략 int[] studentIds = new int[3] {101, 102, 103}; // 오류 발생 int[] studentIds = {101, 102, 103};
다음과 같이 배열의 자료형을 먼저 선언하고 초기화하는 경우에는 new int[]를 생략할 수 없다. 배열 변수를 선언하고 한번에 초기화하는 경우에는 아래와 같이만 쓸 수 있다.
int[] studentIds; studentIds = new int[] {101, 102, 103};
배열.length;
import java.util.Arrays; Arrays.toString(배열); System.out.println(Arrays.toString(배열));
int size = 0;위와 같이 변수를 선언한 후 배열에 값이 들어갈때 마다
size++;를 한다. 즉, 프로그래머가 알아서 처리해줘야한다.
배열 요소 값을 순서대로 하나씩 가져와서 변수에 대입한다. 따로 초기화와 종료 조건이 없다. 모든 배열의 시작 요소부터 끝 요소까지 실행한다.
for(변수 : 배열) { 반복 실행문; }
예시
for(String lang : strArr) { System.out.println(lang); }
이차원 이상으로 구현한 배열.
자료형 배열이름 = new 자료형 행개수 열_개수
int[][] arr = {{1, 2, 3}, {4, 5, 6}};
int[][] arr = new int[2][3]; arr[0][0] = 1; arr[0][1] = 2; arr[0][2] = 3; arr[1][0] = 4; arr[1][1] = 5; arr[1][2] = 6;
기본 배열은 프로그램에서 사용하려면 항상 배열 길이를 정하고 시작한다. 기본 배열은 선언 이후 배열의 크기를 변경할 수 없다. 이러한 배열을 정적 배열이라하고 이 단점을 해결하기 위해 ArrayList를 사용한다.
ArrayList는 java.util 패키지에 구현되어 있는 클래스다.
java.util 패키지는 자바에서 사용하는 여러 자료구조와 알고리즘에 관련된 클래스를 구현해 놓은 패키지이다.
내 코드에 없는 클래스를 가져와 사용할 때 이 클래스가 어디에 구현되어 있다고 알려주기 위해 코드 맨 위에 선언하는 것을 임포트(import)한다고 한다.
즉, ArrayList를 사용하려면 자바 클래스를 선언하기 전에 아래의 코드를 써야한다.
import java.util.ArrayList;
boolean add(E e): 요소 하나를 배열에 추가한다. E는 요소의 자료형을 의미한다. int size(): 배열에 추가된 요소 전체 개수를 반환한다. E get(int index): 배열의 index 위치에 있는 요소 값을 반환한다. E remove(int index): 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환한다. boolean isEmpty(): 배열이 비어 있는지 확인한다.
ArrayList< Book> library = new ArrayList< Book>(); library.add(new Book("태백산맥", "조정래"));
Book[] library = new Book[5];Book 인스턴스가 5개 생성된 것이 아니라 Book 인스턴스 주소 값을 담을 공간 5개가 생성된 것이다.
ArrayList< E> 배열_이름 = new ArrayList< E>();예시
ArrayList< Book> 배열_이름 = new ArrayList< Book>();