본문 바로가기

자바/자료구조

[자료구조] 배열 (ArrayList) / 2022.02.27

1. ArrayList 란? 

ArrayList는 가변 크기의 배열을 구현한 컬렉션 클래스이다. 

경로명은 java.util.ArrayList 이다.

 

2. ArrayList와 Array의 차이점

가장 큰 차이점은 ArrayList는 선언 할 때 크기를 선언하지 않아도 되고 (가변) Array는 선언 할 때 크기를 선언(고정)해 주어야 한다는 것이다. 따라서 배열의 크기를 모른다면 ArrayList를 사용하는 것이 바람직하다.

 

3. ArrayList의 주요 메소드

메소드 설명
boolean add(E element) ArrayList의 맨 뒤에 element 추가
void add(int index, E element) 인덱스 index 위치에 element 삽입
boolean addAll(Collection<? extends E>c 컬렉션 c의 모든 요소를 ArrayList의 맨 뒤에 추가
void clear() ArrayList의 모든 요소 삭제
boolean contains(Object o) ArrayList가 지정된 객체를 포함하고 있으면 true 리턴
E elementAt(int index)  index의 요소 리턴
E get(int index) index의 요소 리턴
int indexOf(object o) o와 같은 첫 번째 요소의 인덱스 리턴, 없으면 -1리턴
boolean isEmpty() ArrayList가 비어있으면 true 리턴
E remove(int index) index의 요소 삭제
booelan remove(Object o) o와 같은 첫 번째 요소를 ArrayList에서 삭제
int size() ArrayList가 포함하는 요소의 개수 리턴
Objec[] toArray()  ArrayList의 모든 요소를 포함하는 배열 리턴

 

- ArrayList의 생성

1. 문자열만 다루는 ArrayList

ArrayList<String> a = new ArrayList<String>();
ArrayList<String> a = new ArrayList<>(); // 뒤에 String 생략가능

 

2. 정수형을 다루는 ArrayList

ArrayList<Integer> number = new ArrayList<Integer>();
ArrayList<Integer> number = new ArrayList<>(); // 뒤에 Integer 생략가능

 

- ArrayList에 요소 삽입

add() 메소드를 사용하면 요소를 삽입할 수 있다. 인덱스 0부터 순차적으로 삽입된다.

// 문자열 삽입 
a.add("Hello");
a.add("Java"); 
a.add("Love");

// 정수형 삽입
number.add(5);
number.add(7);

// null 삽입
a.add(null);

// ArrayList 중간에 요소 삽입, 뒤의 요소들은 한 자리씩 뒤로 이동
a.add(2, "World"); // 인덱스 2위치에 "World" 삽입

 

- ArrayList 내의 요소 알아내기

get() 이나 elementAt() 메소드를 이용하면 ArrayList 내의 요소를 알아낼 수 있다.

String str = a.get(1); // "Java" 리턴

 

- ArrayList의 크기 알아내기

size() 메소드를 호출하면 현재 ArrayList에 들어 있는 요소의 개수를 알아낼 수 있다.

int len = a.size(); 

 

- ArrayList에서 요소 삭제

remove() 메소드를 사용하면 임의의 인덱스에 있는 요소를 삭제할 수 있다. 삭제 후, 뒤에 있는 요소들은 한 자리씩 앞으로 이동한다. clear() 메소드를 사용하면 모든 요소를 삭제한다.

 

a.remove(1); // 인덱스 1의 요소 삭제

a.clear(); // 모든 요소 삭제

'자바 > 자료구조' 카테고리의 다른 글

[자료구조] 스택 (Stack) / 2022.03.15  (0) 2022.03.15