본문 바로가기

자바 기초

자바 ArrayList - Do it! 자바프로그래밍기초

자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공한다.

ArrayList 클래스는 객체 배열을 관리할 수 있는 멤버 변수와 메서드를 제공하는데 사용법을 알아두면 편리하게 사용할 수 있다.

 

주요 메서드로는

boolean add(E e) : 요소 하나를 배열에 추가한다. E는 요소의 자료형을 의미

int size() : 배열에 추가된 요소 전체 개수를 반환

E get(int index) : 배열의 index 위치에 있는 요소 값을 반환한다.

E remove(int index) : 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환한다.

boolean isEmpty() : 배열이 비어있는지 확인한다.

 

ArrayList는 java.util 패키지에 구현되어 있는 클래스이기 때문에 자바 클래스를 선언하기 전에 

import java.util.ArrayList; 문장을 반드시 써줘야한다.

 

 

ArrayList<E> 배열이름 = new ArrayList<E>();   // ArrayList를 사용하는 기본 형식

 

package array;

public class Book {
	private String bookName;
	

	private String author;
	
	///////////////////생성자/////////////////////////////////////////////
	public Book() {}
	
	public Book(String bookName, String author)
	{
		this.bookName = bookName;
		this.author = author;
	}
	///////////////////////////////////////////////////////////////////////
	
	public String getBookName() {
		return bookName;
	}

	public void setBookName(String bookName) {
		this.bookName = bookName;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}
	
	public void showBookInfo()
	{
		System.out.println(bookName + ", " + author);
	}

}
package array;
import java.util.ArrayList;

public class ArrayListTest {

	public static void main(String[] args) {
		// ArrayList 클래스는 객체 배열을 관리할 수 있는 멤버 변수와 메서드를 제공
		
		ArrayList<Book> library = new ArrayList<Book>(); // ArrayList 선언, Book 클래스형을 자료형으로 사용해서 ArrayList 배열 생성.
		// 기본 배열에서는 [ ] 안에 배열 전체 길이를 미리 지정해야하지만, 
		// ArrayList를 생성할 때는 미리 지정할 필요 없이 ' add() 메서드를 사용해 생성자만 호출 '하면 됨
		
		library.add(new Book("태백산맥", "조정래"));          // add() 메서드로 요소 값 추가.
		library.add(new Book("데미안", "헤르만 헤세"));
		library.add(new Book("어떻게 살 것인가", "유시민"));
		library.add(new Book("토지", "박경리"));
		library.add(new Book("어린왕자", "생택쥐패리"));
		
		for (int i = 0; i < library.size(); i++) // 배열에 추가된 요소 개수만큼만 출력하기 위해 size() 메서드를 사용
		{
			Book book = library.get(i); // 배열의 i 인덱스 위치에 있는 값을 반환.
			book.showBookInfo();
		}
		System.out.println( );
		
		System.out.println("=== 향상된 for 문 사용 ===");
		for (Book book : library)
		{
			book.showBookInfo();
		}
		
		
	}

}

기본 배열에서는 [ ] 안에 배열 전체 길이를 미리 지정해야 했지만, 

ArrayList를 생성할 때는 미리 지정할 필요 없이 add() 메서드를 사용해 생성자만 호출하면 된다.

ArrayList는 객체 배열이믈 각 인스턴스를 생성해서 배열의 요소로 추가했고, get() 메서드를 사용해서 요소를 가져왔다.