Java의 정석 3rd Edition
ArrayList(저장순서 유지, 중복 허용)는 Object 배열을 이용해서 데이터를 순차적으로 저장
ArrayList처럼 배열을 이용한 자료구조는 데이터를 읽어오고 저장하는 데는 효율이 좋지만,
용량을 변경해야할 때는 새로운 배열을 생성한 후 기존의 배열로부터
새로운 배열로 데이터를 복사해야하기 때문에 상당히 효율이 떨어짐
LinkedList 구조가 간단하며 사용하기 쉽고 데이터를 읽어오는데 걸리는 시간(접근시간)이 가장 빠름
배열의 단점을 보완하기 위해서 고안됨
LinkedList는 단방향이기 때문에 이전 요소에 접근 어려움 => Double LinkedList 로 보완
=> Double Circular LinkedList 접근성 보다 향상시킴
결론
-순차적으로 추가/삭제하는 경우에는 ArrayList가 LinkedList가 빠름
-중간 데이터를 추가/삭제하는 경우에는 LinkedList가 ArrayList보다 빠름
컬렉션 | 읽기(접근시간) | 추가/삭제 | 비고 |
ArrayList | 빠름 | 느림 | 순차적인 추가/삭제는 빠름 비효율적인 메모리 사용 |
LinkedList | 느림 | 빠름 | 데이터가 많을수록 접근성이 떨어짐 |
'알고리즘' 카테고리의 다른 글
[알고리즘] 합병정렬(Merge sort), 힙정렬(Heap sort) | T아카데미 (0) | 2021.06.30 |
---|---|
[알고리즘]_알고리즘 문제해결 전략 3장 (0) | 2021.03.22 |
[알고리즘]_순환(Recursion)_3 반복문(Iteration)과 비교 (0) | 2021.01.29 |
[알고리즘]_순환(Recursion)_2 순환의 적용 (0) | 2021.01.29 |
[알고리즘]_순환(Recursion)_1 개념 및 예제 (0) | 2021.01.28 |