ArrayList
는 데이터를 배열에 관리한다.
LinkedList
는 데이터를 저장하는 각 노드가 이전 노드와 다음 노드만 알고 있다.
LinkedList
는 이전 노드와 다음 노드를 참조하는 상태만 변경하면 되기 때문에 O(1)의 시간 복잡도를 가진다.ArrayList
는 다른 데이터를 복사해야 하기 때문에 최악의 경우 O(N)의 시간 복잡도를 가진다.ArrayList
는 인덱스 기반의 자료 구조이며 get 메서드를 통해 O(1)의 시간 복잡도를 가진다.LinkedList
는 모든 요소를 탐색해야 하기 때문에 최악의 경우에는 O(N)의 시간 복잡도를 가진다.데이터를 관리하기 위해 상황에 맞는 적절한 자료구조를 사용해야 한다.
데이터 추가/삭제가 빈번히 발생한다면LinkedList
, 데이터 검색이 빈번히 발생한다면ArrayList
를 선택해야 한다.