알고리즘

[자료구조] ArrayList와 LinkedList

Ellie67 2021. 3. 15. 16:40
Java의 정석 3rd Edition

 

ArrayList(저장순서 유지, 중복 허용)는 Object 배열을 이용해서 데이터를 순차적으로 저장

 

ArrayList처럼 배열을 이용한 자료구조는 데이터를 읽어오고 저장하는 데는 효율이 좋지만,

용량을 변경해야할 때는 새로운 배열을 생성한 후 기존의 배열로부터

새로운 배열로 데이터를 복사해야하기 때문에 상당히 효율이 떨어짐

 

 

LinkedList 구조가 간단하며 사용하기 쉽고 데이터를 읽어오는데 걸리는 시간(접근시간)이 가장 빠름

배열의 단점을 보완하기 위해서 고안됨

LinkedList는 단방향이기 때문에 이전 요소에 접근 어려움 => Double LinkedList 로 보완 

=> Double Circular LinkedList 접근성 보다 향상시킴

 

 

결론

-순차적으로 추가/삭제하는 경우에는 ArrayList가 LinkedList가 빠름

-중간 데이터를 추가/삭제하는 경우에는 LinkedList가 ArrayList보다 빠름

 

컬렉션 읽기(접근시간) 추가/삭제 비고
ArrayList 빠름 느림 순차적인 추가/삭제는 빠름
비효율적인 메모리 사용
LinkedList 느림 빠름 데이터가 많을수록 접근성이 떨어짐