[JAVA] ArrayList 란

상세 컨텐츠

본문 제목

[JAVA] ArrayList 란

프로그래밍 ( Programming )/JAVA

by memyself 2021. 6. 10. 18:24

본문

ArrayList 도입

프로그래밍을 하면서 배열을 사용하기 위해서 항상 배열의 길이를 정하고 만들게 됩니다. 

기본적으로 100명의 학생 크기를 위한 배열을 사용하는 프로그램을 만들었는데 순간 학생수가 100명이 넘어버리는 경우가 발생하기도 합니다. 하지만 이러한 경우 기존에 사용하던 배열의 길이를 변경할 수 없기에 코드를 수정해야 합니다. 또 다른 경우는 도중에 전학을 가게 되는 경우에 배열의 중간 위치에 담긴 요소가 사라지는 경우가 발생합니다.

이러한 경우에 대비하여 자바는 객체 배열을 좀 더 쉽게 사용이 가능하도록 객체 배열 클래스 ArrayList를 제공합니다. ArrayList 클래스는 객체 배열을 관리가 가능하도록 멤버 변수와 메서를 제공하는데 이러한 방법들을 알아두면 배열 관리와 생성 및 삭제 등을 자유롭게 할 수 있습니다. 

 

* 대표적인 ArrayList 메서드 종류
1. boolean add(E e) : 요소 하나를 배열에 추가함. E는 요소의 자료형을 의미함. 
2. int size() : 배열에 추가된 요소 전체 개수를 반환함.
3. E get(int index) : 배열의 index 위치에 있는 요소 값을 반환하게 됨.
4. E remove(int index) : 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환하게 됨. 
5. boolean isEmpty( ) : 배열이 비어 있는지 확인을 함. 

 

ArrayList 클래스 사용하기

ArrayList를 사용하기 위해서 어떠한 자료형 객체를 사용하여 프로그래밍을 할것인지 선언이 가능합니다. 

* ArrayList를 사용하기 위해 import java.util.ArrayList; 문장을 상단에다가 반드시 사용해야 합니다. 

ArrayList <E> 배열 이름 = new ArrayList <E>();      ( ArrayList를 사용하는 기본 형식 ) 
< > 안에는 사용할 객체의 자료형(E)를 쓰면 됩니다.

예를 들어서 Book이라는 클래스 형을 ArrayList를 사용하여 배열을 생성할 때 다음과 같이 구성됩니다. 
ArrayList <Book> library = new ArrayList <Book>();

 

예제 1 : ArrayList 클래스 사용해보기 (add, get 메서드 사용)

package ArrayList;
import java.util.ArrayList;

import array.Book;

public class ArrayListTest {

	public static void main(String[] args) {
		ArrayList<Book> library = new ArrayList<Book>( );
		
		library.add(new Book("태백산맥","조정래"));
		library.add(new Book("데미안","헤르만 해세"));
		library.add(new Book("어떻게 살 것인가","유시민"));
		library.add(new Book("토지","박경리"));
		library.add(new Book("어린왕자","생택쥐페리"));
		
		for(int i=0;i<library.size();i++) {
			Book book = library.get(i);
			book.showBookInfo();
		}
		System.out.println();
		
		System.out.println("=== 향상된 for문 사용 ===");
		for(Book book : library) {
			book.showBookInfo();
		}
	}
}

기본 배열에서는 [ ] 안에 배열의 전체 길이를 미리 지정하거나 초기화를 할 때 자료의 개수에 따라서 자동적으로 개수가 맞춰집니다. 하지만 ArrayList를 생성할 때는 미리 지정할 필요가 없이 add() 메서드를 활용하여 생성자만 호출하면 됩니다.

또한 배열을 넣고 요소를 가져올 때는 for문에 나와있는 것처럼 get() 메서드를 활용하여 몇 번째 요소를 가져올 것인지 매개 변수만 넣어주면 원하는 위치의 요소를 가져올 수 있습니다. 

 

예제 2 : ArrayList 클래스 사용해보기 (remove 메서드 사용)

remove를 통해서 배열의 요소를 제거하기 위해 다음과 같이 이용합니다. 삭제를 할때는 () 안에 엘레맨트의 인덱스를 입력하거나 엘레먼트를 직접 입력할 수 있습니다. 

인덱스를 통해 삭제를 할 경우 삭제되는 엘레맨트를 리턴받을수있습니다. 값을 지움과 동시에 해당 값으로 별도의 작업이 필요한 경우 리턴을 받아서 사용이 가능합니다. 

* clear() 메서드를 통해서 ArrayList 내부의 모든 내용을 전체 삭제가 가능합니다. 

package ArrayList;
import java.util.ArrayList;

import array.Book;

public class ArrayListTest {

	public static void main(String[] args) {
		ArrayList<Book> library = new ArrayList<Book>( );
		
		library.add(new Book("태백산맥","조정래"));
		library.add(new Book("데미안","헤르만 해세"));
		library.add(new Book("어떻게 살 것인가","유시민"));
		library.add(new Book("토지","박경리"));
		library.add(new Book("어린왕자","생택쥐페리"));
		
		library.remove(0); // remove 
		
		for(int i=0;i<library.size();i++) {
			Book book = library.get(i);
			book.showBookInfo();
		}
		System.out.println();
		
		System.out.println("=== 향상된 for문 사용 ===");
		for(Book book : library) {
			book.showBookInfo();
		}
	}
}

 

728x90
반응형

'프로그래밍 ( Programming ) > JAVA' 카테고리의 다른 글

[JAVA] 상속에서 클래스 생성과 형 변환  (0) 2021.06.26
[JAVA] 상속이란?  (0) 2021.06.26
[JAVA] ArrayList 란  (0) 2021.06.10
[JAVA] 배열  (0) 2021.06.01
[JAVA] static 응용 - 싱글톤 패턴  (0) 2021.05.28

관련글 더보기

댓글 영역

페이징