각진 세상에 둥근 춤을 추자
[Java] ArrayList 클래스 사용하기 본문
배열을 통해 100명의 학생을 위한 프로그램을 개발했다고 가정한다.
학생 수가 어느 순간 100명이 넘었다.
배열을 사용하는 중에는 배열의 길이를 변경 할 수 없기 때문에 다시 코드를 수정해야 하는 일이 생긴다.
객체 배열 클래스 ArrayList를 통해 객체 배열을 좀 더 쉽게 사용할 수 있다.
메서드 | 설명 |
boolean add(자료형 e) | 요소 하나를 배열에 추가한다. |
int size( ) | 배열에 추가된 요소 전체 개수를 반환한다. |
자료형 get(int index) | 배열의 index 위치에 있는 요소 값을 반환한다. |
자료형 remove(int index) | 배열의 Index 위치에 있는 요소 값을 제거하고 그 값을 반환한다. |
boolean isEmpty( ) | 배열이 비어 있는지 확인한다. |
ArrayList를 사용하는 기본 형식이다.
ArrayList<E> 배열 이름 = new ArrayList<E>();
이때, E는 제네릭 자료형이다.
Book 클래스 배열 예제를 ArrayList 클래스를 활용하여 구현해 본다.
( 1) Book 클래스
package ch07_1;
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 show() {
System.out.println(bookName + ", " + author);
}
}
(2) ArrayList 클래스 사용하기
package ch7_2;
// ArrayList 클래스 import
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
// ArrayList 선언
ArrayList<Book> library = new ArrayList<Book>();
// add() 메서드로 요소 값 추가
library.add(new Book("잘될 수밖에 없는 너에게","최서영"));
library.add(new Book("다섯 번째 감각","김보영"));
library.add(new Book("어금니 깨물기","김소연"));
library.add(new Book("시키는 대로 제멋대로","이소호"));
library.add(new Book("긴긴밤","루리"));
// 배열에 추가된 요소 개수만큼 출력 - for문 사용
for (int i=0; i<library.size(); i++) {
Book book = library.get(i);
book.show();
}
System.out.println();
// 배열에 추가된 요소 개수만큼 출력 - 향상된 for문 사용
for ( Book book : library) {
book.show();
}
}
}
'Java' 카테고리의 다른 글
[Java] 상속 - 고객 관리 프로그램 (0) | 2022.09.19 |
---|---|
[Java] ArrayList - 학생 성적 출력 프로그램 (0) | 2022.09.19 |
[Java] 다차원 배열 (0) | 2022.09.19 |
[Java] 향상된 for문 사용하기 (0) | 2022.09.19 |
[Java] 배열 복사하기 (0) | 2022.09.19 |