본문 바로가기

컴퓨터언어/JAVA(자바)

[JAVA강좌] 35강 ArrayList 클래스

728x90
반응형

 

 

 

 

 

 

 

 

 

- 우리가 이전까지 배웠던 배열은 항상 길이를 지정하고 사용했습니다.

- 근데 항상 길이가 정해져 있는 프로그램만 사용하는 것은 아니겠죠?

- 예를 들어, 회원관리 프로그램이면, 회원이 추가될 수도 있고, 중간에 탈퇴해서 삭제될 수도 있습니다.

- 길이가 고정적으로 되는 경우는 없습니다.

- 그래서 자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 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을 볼 수 있습니다. 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

 

 

 

 

 

 

 

 

 

 

 

2. ArrayList 클래스 활용하기


- ArrayList 클래스는 java.util 패키지에 구현되어 있는 클래스이므로 import 되어야 합니다. 

- 지난 강좌에서 Webtoon클래스를 객체 배열로 만들었던 것을 ArrayList클래스를 활용해서 구현해 보겠습니다. 

- 기억이 안나는 분은 아래 주소를 클릭해주세요.

https://ossam5.tistory.com/643

 

[JAVA강좌] 28강 객체 배열 생성

- 객체도 배열로 만들 수 있습니다. - 동일한 기본 자료형 변수 여러 개를 배열로 사용할 수 있듯이, 참조 자료형 변수도 여러 개를 배열로 사용합니다. - 참조자료형 변수는 클래스형으로 선언하

ossam5.tistory.com

 

 

 

 

## 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개를 주석 달아보세요.
- 그래도 개수와 상관없이 잘 반환되는 것을 확인할 수 있습니다. 

 

 

 

 

 

 

728x90
반응형