LinkedList와 ArrayList의 차이

알파·2022년 8월 15일
0

ArrayList

ArrayList는 List 인터페이스를 상속받은 클래스로 크기가 가변적인 선형리스트이다.
(일반 배열은 처음에 메모리를 할당할 때 크기를 지정해주어야 한다.)
객체들이 추가되어 저장용량을 초과하면 자동으로 부족한 크기만큼 저장 용량이 늘어난다.

LinkedList

LinkedList는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조이다.
ArrayList에 비해서 데이터의 추가나 삭제가 용이하나 인덱스가 없어서 특정 요소에 접근하기 위해서는 순차 탐색을 필요로 하여 탐색속도가 떨어진다는 단점이 있다.
LinkedList는 초기의 크기를 미리 생성할 수 없다.

LinkedList와 ArrayList의 차이

ArrayList는 각 데이터의 index를 가지고 있어 조회 성능이 뛰어나지만, 데이터 삽입과 삭제시 위치를 변경해야하기 때문에 비효율적이다.
반면, LinkedList는 순차적 접근을 해야하기 때문에 조회 속도가 느리지만, 데이터 삽입과 삭제시 가리키고 있는 주소값만 변경해주면 되기 때문에 효율적이다.
따라서, 정적인 데이터를 활용하고 조회과 빈번하다면 ArrayList를 동적으로 삽입/삭제가 빈번하다면 LinkedList를 사용하는 것이 좋다.

profile
I am what I repeatedly do

0개의 댓글