언어/자바
[Java] ArrayList 메서드
believekim
2025. 3. 19. 18:51
ArrayList는 배열과 달리 배열의 크기가 변할 수 있다.
List 인터페이스를 구현하고 있어서 List의 메서드 모두 사용 가능
1. ArrayList 다이어그램
- Iterable, Collection, List 인터페이스를 상속
2. ArrayList 메서드
- 순서유지, 중복허용, null값 가능
- 자주 사용하는 메서드는 빨간색
메서드 | 설명 |
add(E e) | 리스트 끝에 요소 추가 |
add(int index, E element) | 특정 위치에 요소 추가 |
addAll(Collection<? extends E> c) | 컬렉션의 모든 요소 추가 |
addAll(int index, Collection<? extends E> c) | 특정 위치부터 컬렉션 요소 추가 |
clear() | 모든 요소 제거 |
clone() | 리스트 복사본 반환 |
contains(Object o) | 특정 요소 포함 여부 확인 |
containsAll(Collection<?> c) | 컬렉션의 모든 요소가 포함되어 있는지 확인 |
equals(Object o) | 다른 리스트와 내용이 같은지 비교 |
get(int index) | 특정 위치 요소 반환 |
indexOf(Object o) | 처음 등장하는 요소의 인덱스 반환 |
lastIndexOf(Object o) | 마지막으로 등장하는 요소의 인덱스 반환 |
isEmpty() | 리스트가 비어있는지 확인 |
iterator() | Iterator 반환 (순회용) |
listIterator() | ListIterator 반환 (양방향 순회) |
listIterator(int index) | 특정 위치부터 ListIterator 반환 |
remove(int index) | 특정 위치 요소 삭제 |
remove(Object o) | 처음 만나는 해당 요소 삭제 |
removeAll(Collection<?> c) | 컬렉션에 있는 모든 요소 삭제 |
retainAll(Collection<?> c) | 컬렉션에 없는 요소는 모두 삭제 (교집합만 남기기) |
replaceAll(UnaryOperator<E> operator) | 모든 요소 일괄 수정 (람다로 처리) |
set(int index, E element) | 특정 위치의 요소를 새 값으로 교체 |
size() | 리스트의 크기 반환 |
sort(Comparator<? super E> c) | 지정된 비교자로 리스트 정렬 |
spliterator() | Spliterator 반환 (병렬 처리용) |
stream() | Stream 생성 (람다 처리에 유용) |
parallelStream() | 병렬 Stream 생성 |
subList(int fromIndex, int toIndex) | 특정 범위 부분 리스트 반환 |
toArray() | Object 배열로 변환 |
toArray(T[] a) | 지정한 타입의 배열로 변환 |
hashCode() | 리스트의 해시코드 반환 |
3. 주요 메서드 예시
- add(): 값 추가
list.add("Apple");
System.out.println(list); // ["Apple"]
- get(): 값 가져오기
String fruit = list.get(0); // 인덱스 0의 요소 가져오기
System.out.println(fruit); // Apple
- set(): 값 변경
list.set(0, "Blueberry"); // 인덱스 0의 요소를 "Blueberry"로 변경
- remove(): 값 삭제
list.remove(0); // 인덱스 0의 요소 삭제
System.out.println(list); // []
list.remove("Apple"); // "Apple" 값으로 삭제
System.out.println(list); // []
- size(): 개수 확인
list.size();
- contains(): 특정 값이 있는지 확인
list.contains("Apple"); // true나 false 반환
- clear(): 전체 삭제
list.clear();
System.out.println(list); // []
System.out.println(list.size()); // 0
4. List 구현체
- ArrayList는 List의 구현체이다. 그래서 다른 구현체들과 비교해보았다.
구현체 | 정렬 여부 | 순서 유지 | 속도 | 내부구조 | 특징 |
ArrayList | X | O | 검색 빠름, 삽입/삭제 느림 | 배열 | 가장 많이 사용 |
LinkedList | X | O | 검색 느림, 삽입/삭제 빠름 | 이중 연결 리스트 | 삽입/삭제 많을 때 |
Vector | X | O | ArrayList와 유사, 동기화 O | 배열 | 멀티스레드 환경용 |
Stack | X (LIFO) | O | Vector 기반 | 배열 | 후입선출 자료구조 |