[Java] List

우노구나·2025년 7월 31일

List의 특징

특징설명
순서 보장요소들이 추가된 순서를 유지함
인덱스 기반 접근list.get(0)처럼 인덱스로 요소에 접근 가능
중복 허용같은 값을 여러 번 저장할 수 있음
null 저장 가능null 값을 저장할 수 있음
동적 크기 조절 가능배열과 달리 요소가 추가되면 크기가 자동으로 늘어남



주요 구현 클래스

클래스 이름특징
ArrayList내부적으로 배열 사용, 빠른 조회, 느린 삽입/삭제
LinkedList내부적으로 연결 리스트 사용, 삽입/삭제 빠름, 조회 느림
VectorArrayList와 비슷하지만 동기화 지원 (멀티스레드에 적합)
StackVector를 상속, LIFO 구조 (스택 자료구조)



주요 메서드

메서드설명
add(E e)리스트에 요소 추가
add(int index, E element)지정된 위치에 요소 삽입
get(int index)인덱스 위치의 요소 반환
set(int index, E element)인덱스 위치의 요소를 새 요소로 대체
remove(int index)인덱스 위치의 요소 제거
remove(Object o)특정 객체 제거 (처음 나타나는 것만)
size()리스트의 크기 반환
contains(Object o)해당 요소가 존재하는지 확인
indexOf(Object o)첫 번째 등장 인덱스 반환
clear()리스트의 모든 요소 제거
isEmpty()리스트가 비어 있는지 확인



ArrayList와 LinkedList으 ㅣ성능 차이

연산ArrayListLinkedList
조회(get)빠름 (O(1))느림 (O(n))
삽입/삭제느림 (O(n))빠름 (O(1) – 위치만 알면)
메모리 사용량적음큼 (포인터 필요)
profile
기술 블로그

0개의 댓글