지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 다차원 배열
기존 배열의 단점
지난 시간에 공부했던 기본 배열은 프로그램에서 사용하려면 항상 배열 길이를 정하고 시작해야한다.
또, 배열을 사용하는 중에는 배열 길이를 변경할 수 없고, 중간에 있는 요소를 비워둘 수 없어서
수정할 일이 생기면 배열을 하나하나 수정해야한다.
ArrayList 클래스
그래서 JAVA는 객체 배열을 좀 더 쉽게 사용할 수 있게 객체 배열 클래스 ArrayList를 제공한다.
ArrayList 클래스는 객체 배열을 관리할 수 있는 멤버 변수와 메서드를 제공한다.
오늘은 이 ArrayList의 간단한 사용법을 공부할 것이다.
ArrayList 클래스의 주요 메서드
오늘 배울 ArrayList 클래스의 메서드는 ArrayList클래스에 이미 존재하는 많은 메서드 중에서
프로그램을 만들 때 가장 많이 사용하는 메서드라고한다.

add( ) 메서드를 이용하면 배열 길이와 상관 없이 객체를 추가할 수 있다. 만약 배열의 길이가
추가될 요소 개수보다 부족하다면 배열을 더 키울 수 있도록 구현되어 있다.
또 배열 중간의 어떤 요소 값이 제거되면 그다음 요소값을 하나씩 앞으로 이동하는 코드도 구현되어 있다.
이렇게 JAVA에서 제공하는 라이브러리를 활용하면 좀 더 편리하게 프로그래밍할 수 있다.
ArrayList 클래스 활용하기
ArrayList를 사용할 때 어떤 자료형 객체를 사용하여 프로그래밍할 것인지 선언할 수 있다.
ArrayList를 사용하는 기본 형식은 다음과 같다.
ArrayList<E> 배열이름 = new ArrayList<E>( );
배열을 선언하는 부분의 < > 안에 사용할 객체의 자료형(E)를 쓰면 된다.
지난 글에서 작성한 Book 클래스형을 자료형으로 사용하여 ArrayList 배열을 생성한다면 아래와 같다.
ArrayList<Book> library = new ArrayList<Book>( );
ArrayList는 java.util 패키지에 구현되어 있는 클래스이다.
현재 만든 프로그램에는 java.util 패키지가 포함되어 있지 않기에 ArrayList를 사용하기 위해서 컴파일러에게
ArrayList가 어디에 구현되어 있는지를 알려줘야 한다.
이렇게 내 코드에 없는 클래스를 가져와 사용할 때 이 클래스가 어디에 구현되어 있다고 알려주기 위해
코드 맨 위에 선언하는 것을 임폴트(import)한다고 한다.
즉 ArrayList를 사용하려면 JAVA 클래스를 선언하기 전에 import jave.util.ArrayList; 문장을 꼭 써줘야 한다.
지난 시간에 만든 Book 클래스 배열을 ArrayList를 활용하여 구현해보자.


기본 배열에서는 [ ] 안에 배열 전체 길이를 미리 지정해야 했지만, ArrayList를 생성할 때는 미리 지정할 필요 없이
add( ) 메서드를 사용해 생성자만 호출하면 된다. ArrayList는 객체 배열이므로 9~13행과 같이 각 인스턴스를
생성해서 배열의 요소로 추가한다. 15~18행은 ArrayList에 있는 인스턴스를 순서대로 가져와 출력한다.
요소를 하나 가져오는 메서드는 get( )이다. 매개 변수로 몇 번째 요소를 가져올 것인지 지정한다.
15향 for문을 보면 배열에 추가된 요소 개수만큼만 출력하기 위해 size( ) 메서드를 사용했다.
size( ) 메서드는 배열에서 유효한 값이 저장된 요소 개수를 반환한다.
22~24행의 향상된 for문 역시 배열의 요소 값을 출력한다.
참고 서적: 자바 프로그래밍 입문 - 박은종
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JAVA 입문 - 상속 (0) | 2022.05.19 |
---|---|
JAVA 입문 - 배열 응용 프로그램 (0) | 2022.05.18 |
JAVA 입문 - 다차원 배열 (0) | 2022.05.16 |
JAVA 입문 - 배열 (0) | 2022.05.15 |
JAVA 입문 - 싱글톤 패턴 (0) | 2022.05.14 |