개요
- 순서가 중요한 데이터를 저장하고 처리할 때 사용하는 기본 자료구조이다.
- 삽입/삭제/탐색 등의 기능을 제공한다.
특징
- 순서 유지
- 중복 허용
- 인덱스를 통해 값에 접근
- 삽입/삭제/탐색 기능을 제공
리스트 종류
- ArrayList(배열 기반 리스트)
- 내부적으로 연속된 배열로 저장한다.
- 장점: 빠른 접근
- 단점: 중간 삽입/삭제는 느림
- LinkedList(연결 리스트)
- 각각의 노드가 서로 연결된 형태이다.
- 장점: 삽입/삭제가 빠르다
- 단점: 접근 시 느림
리스트와 배열의 차이
항목 배열 리스트
| 크기 | 고정 크기 | 가변 크기 |
| 성능 | 인덱스 접근 빠름 | 삽입/삭제 유연 |
| 기능 | 기능 적음 | 다양한 메서드 제공 |
리스트 사용법(자바)
- ArrayList와 LinkedList 모두 List 인터페이스로 객체를 생성하여 사용한다.(각 클래스의 객체를 생성해도 무관)
- 사용법의 차이는 없고 내부적으로 동작하는 구조에서 차이점이 있다.
- ArrayList
import java.util.ArrayList; import java.util.List; public class Example { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); System.out.println(list.get(1)); // "Banana" } }- LinkedList
import java.util.LinkedList; import java.util.List; public class Example { public static void main(String[] args) { List<String> list = new LinkedList<>(); list.add("Apple"); list.add("Banana"); System.out.println(list.get(1)); // "Banana" } }
사용 사례
- 문자열 처리: 문자열을 한 글자씩 쪼개어 리스트로 처리
- 시험 점수 저장 및 평균 계산: 점수를 리스트에 저장하고 처리
- 검색 결과 리스트: 검색된 결과를 순서대로 저장 후 페이지 단위로 보여줌
- UI 목록 뷰: 뉴스목록, 친구목록 등 리스트 형태로 렌더링
정리
- 데이터의 순서와 중복 허용이 중요할 경우에 리스트를 사용하면 된다.
- 빠른 데이터 접근이 필요한 경우 ArrayList를 사용한다
- 삽입/삭제가 자주 발생한다면 LinkedList를 사용한다
- 처리하는 데이터가 소규모일 경우 큰 차이는 없으나 기본적으로 ArrayList를 자주 사용한다.
'CS 기초 > 자료구조' 카테고리의 다른 글
| 알고리즘-자료구조-큐 구현 (1) | 2025.05.07 |
|---|---|
| 알고리즘-자료구조-큐 (0) | 2025.05.07 |
| 알고리즘-자료구조-스택 구현 (0) | 2025.05.07 |
| 알고리즘-자료구조-스택 (0) | 2025.05.07 |
| 알고리즘-자료구조-리스트 구현 (0) | 2025.05.07 |