Language/Java
[Java] ArrayList vs LinkedList
i-m-okay
2024. 7. 24. 19:41
ArrayList vs LinkedList
ArrayList
- 기존의 Vector를 개선한 것
- Object 배열을 이용해 데이터를 순차적으로 저장
- 더이상 저장할 공간이 없으면 큰 새로운 배열을 생성하여 내용을 복사해서 확장
- 중간 요소 삭제 시 바로 아래에 있는 데이터를 한칸씩 당겨서 덮어쓰는 방식 -> 시간 오래걸림
LinkedList
- ArrayList의 단점 : 크기 변경 불가, 추가 및 삭제 오래걸림
- LinkedList는 불연속적으로 존재하는 데이터를 연결하는 구조
- 삭제와 추가가 빠르다.
- 그대신 index로 탐색하는 방식이 아니라 처음부터 n번까지 따라가야됨. 접근 시간이 오래걸린다.
class Node{
Node next;
Object obj;
}
데이터의 개수가 변하지 않는 경우 ArrayList > LinkedList
데이터의 개수가 자주 변한다면 LinkedList > ArrayList