
순차 리스트 종류에는 ArrayList, LinkedList, Vector 등이 있다
List<자료형> list = new ArrayList<>();
객체를 생성할 때, 데이터 타입은 제너릭 타입의 매개변수로 사용
객체 자료형에는 어떤 것이 들어갈까??
동적 배열(Array)
→ 일반 배열과는 달리 자동으로 크기를 조절 할 수 있음
조회(get) 속도가 매우 빠름
→ 인덱스를 알면 O(1)의 속도로 한 번에 데이터를 찾아감
데이터 추가/삭제가 느림 (특히 중간에 삽입 / 삭제할 때)
→ 중간에 데이터가 삽입되거나 삭제되면, 그 뒤의 모든 데이터를 한 칸씩 밀거나 당기는 작업이 필요
import java.util.ArrayList;
import java.util.List;
List<String> fruits = new ArrayList<>();
fruits.add("사과");
fruits.add("바나나");
fruits.add("딸기");
String secondFruit = fruits.get(1);
System.out.println(fruits); // [사과, 바나나, 딸기]
System.out.println(secondFruit); // 바나나
| 비교 항목 | 배열(Array) | ArrayList |
|---|---|---|
| 크기(size) | 고정 (헌 번 생성하면 변경 불가) | 동적 (데이터 양에 따라 자동으로 늘어남) |
| 조회 | 매우 빠름(인덱스로 바로 접근) | 빠름 |
| 삽입/삭제 | 어려움 | 편함 |
| 데이터타입 | 기본형(int),참조형 모두 가능 | 참조형만 가능 |
사실 배열이랑 ArrayList는 큰 차이는 없다
💡단지 배열 크기 늘리기, 데이터 복사하기 작업을 ArrayList가 대신해주는 것이다
코딩 테스트를 할 떄 크기가 정해져 있다면 배열을 사용하는 것이 조금 더 빠르다