💡List 개념 정리
📘 배열과 같이 객체를 일렬로 늘어놓은 구조
ArrayList
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");

LinkedList
List<String> list = new LinkedList<>();
list.add("A");
list.add("B");

CopyOnWriteArrayList
List<String> list = new CopyOnWriteArrayList<>();
list.add("A");
list.add("B");
정리
| List 종류 | 정렬 | 중복 허용 | 특징 |
|---|---|---|---|
| ArrayList | O (인덱스 순) | O | 배열 기반, 조회 빠름, 삽입/삭제 느림 |
| LinkedList | O (삽입 순) | O | 연결 리스트 기반, 삽입/삭제 빠름, 조회 느림 |
| CopyOnWriteArrayList | O (인덱스 순) | O | 읽기 많은 멀티스레드 환경에 적합, 쓰기 시 복사 |
기본 메서드 및 코드 예시
List<String> list = new ArrayList<>();
// 추가
list.add("Apple");
list.add("Banana");
// 삽입 (n번 인덱스에 삽입)
list.add(1, "Cherry");
// 삭제
list.remove("Banana");
list.remove(0);
// 조회
System.out.println(list.get(0)); // Cherry
System.out.println(list.contains("Apple")); // false
// 수정
list.set(0, "Orange");
// 크기
System.out.println(list.size()); // 1
// 비어있는지 확인
System.out.println(list.isEmpty()); // false
// 정렬
list.add("Banana");
list.add("Apple");
list.sort(Comparator.naturalOrder()); //오름차순 [Apple, Banana, Orange]
list.sort(Comparator.reverseOrder()); //내림차순 [Orange, Banana, Apple]