- 우리가 이전까지 배웠던 배열은 항상 길이를 지정하고 사용했습니다.
- 근데 항상 길이가 정해져 있는 프로그램만 사용하는 것은 아니겠죠?
- 예를 들어, 회원관리 프로그램이면, 회원이 추가될 수도 있고, 중간에 탈퇴해서 삭제될 수도 있습니다.
- 길이가 고정적으로 되는 경우는 없습니다.
- 그래서 자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공합니다.
- ArrayList는 객체 배열을 관리할 수 있는 멤버변수와 메서드를 제공하므로 사용법만 알아두면 편합니다.
- 추후 제너릭을 배울 때 더 자세히 배우지만, 길이 늘어나는 것을 미리 공부해 보도록 하겠습니다.
1. ArrayList 클래스 선언 및 메서드
- ArrayList 클래스에는 이미 만들어져 있는 메서드가 많이 있습니다.
- 이번 강좌에서는 프로그램 만들 때 가장 많이 사용하는 메서드 위주로 설명하겠습니다.
## ArrayList 인스턴스 생성
ArrayList<E> 배열명 = new ArrayList<E>();
- <E>와 같은 형태를 제너릭 자료형이라고 합니다.
- 주후 제너릭 자료형에서 더 자세히 보도록 하겠습니다.
- 지금은 배열을 늘리거나 삭제하라면 이 클래스를 사용한다는 것을 알면 되겠습니다.
## ArrayList 주요 메서드
메서드 | 설명 |
boolean add(E e) | 요소 하나를 배열에 추가합니다. E는 요소의 자료형을 의미합니다. |
int size() | 배열에 추가된 요소 전체 개수를 반환하는 메서드입니다. |
E get(int index) | 배열의 index 위치에 있는 요소 값을 반환합니다. |
E remove(int index) | 배열의 index 위치에 있는 요소 값을 제거하고, 그 값을 반환합니다. |
boolean isEmpty() | 배열이 비어 있는지 확인합니다. |
- 모든 메서드를 전부 외울 수는 없습니다.
- 이클립스 창에서 ArrayList라고 적고, [F1]이라고 누르면 클래스 설명이 있는 JavaDoc을 볼 수 있습니다.
2. ArrayList 클래스 활용하기
- ArrayList 클래스는 java.util 패키지에 구현되어 있는 클래스이므로 import 되어야 합니다.
- 지난 강좌에서 Webtoon클래스를 객체 배열로 만들었던 것을 ArrayList클래스를 활용해서 구현해 보겠습니다.
- 기억이 안나는 분은 아래 주소를 클릭해주세요.
https://ossam5.tistory.com/643
## Webtoon.java
- 혹시 기존 파일이 없는 분은 아래 코드를 복붙 해서 파일을 만들어 주세요.
package ch18_array;
public class Webtoon {
//멤버변수 선언
private String webtoonName;
private String author;
//기본생성자 - 안적어도 됨
public Webtoon() { }
//웹툰명과 저자를 매개변수로 받는 생성자
public Webtoon(String webtoonName, String author) {
this.webtoonName = webtoonName;
this.author = author;
}
//게터/세터
public String getWebtoonName() {
return webtoonName;
}
public void setWebtoonName(String webtoonName) {
this.webtoonName = webtoonName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
//출력 메서드
public void printWebtoonInfo() {
System.out.println("웹툰명 : " + webtoonName);
System.out.println("저자명 : " + author);
}
}
## WebtoonArrayListMain.java - 코드
- main 함수를 체크해서 처리해 줍니다.
package ch18_array;
import java.util.ArrayList;
public class WebtoonArrayListMain {
public static void main(String[] args) {
//ArrayList로 선언
ArrayList<Webtoon> webtoons = new ArrayList<Webtoon>();
//개수 제한이 없음 - 3개를 해도 5개를 생성해도 상관없음
webtoons.add(new Webtoon("내남편과결혼해줘","LICO"));
webtoons.add(new Webtoon("이제 곧 죽습니다","이원식/꿀찬"));
webtoons.add(new Webtoon("연애혁명","232"));
webtoons.add(new Webtoon("배니싱 트윈","가재/도달"));
webtoons.add(new Webtoon("더 복서","정지훈"));
//size()메서드를 이용한 출력
for(int i=0;i<webtoons.size();i++) {
//한개만 얻어오는 get()메서드 사용
Webtoon webtoon = webtoons.get(i);
webtoon.printWebtoonInfo();
}
System.out.println("======================");
//향상된 for문 출력 - size()와 get() 없이도 활용 가능
for(Webtoon webtoon : webtoons) {
webtoon.printWebtoonInfo();
}
}
}
## WebtoonArrayListMain.java - 결과
- 출력이 잘되는 것을 확인할 수 있습니다.
- 이때, 인스턴스 2~3개를 주석 달아보세요.
- 그래도 개수와 상관없이 잘 반환되는 것을 확인할 수 있습니다.
'컴퓨터언어 > JAVA(자바)' 카테고리의 다른 글
[JAVA강좌] 36강 ArrayList를 이용한 학생 관리 (3) | 2024.01.30 |
---|---|
[JAVA강좌] 34강 다차원 배열 (0) | 2024.01.29 |
[JAVA] 33강 자바 객체 배열 - 학생 성적 관리 (0) | 2024.01.29 |
[JAVA강좌] 32강 자바 배열 - 배스킨라빈스31게임 (0) | 2024.01.29 |
[JAVA강좌] 31강 자바 배열 - 로또 프로그램 (1) | 2024.01.29 |