본문 바로가기
개인공부

LinkedList

by 리승우 2022. 8. 15.

배열의 장단점

장점

1. 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간이 짧다

 

단점

1. 크기를 변경할 수 없다

크기를 변경해야하는 경우, 새로운 배열을 생성 후 데이터를 복사해야함 (더 큰 배열생성 -> 기존배열내용 복사 -> 참조변경)

크기 변경을 피하기 위해 충분히 큰 배열을 생성하면, 메모리가 낭비됨

 

2. 비순차적인(중간에) 데이터의 추가, 삭제에 시간이 많이 걸린다. 

데이터를 추가하거나 삭제하기 위해, 다른 데이터를 옮겨야 함

그러나 순차적인 데이터 추가(끝에 추가)와 삭제(끝부터 삭제)는 빠르다.

 

 

LinkedList - 배열의 단점을 보완 (크기변경X / 추가삭제 시간 ↑)

> 배열과 달리 LinkedList는 불연속적으로 존재하는 데이터를 연결 (link)

데이터의 추가 부분, 방향선 잘못 그어져있으니 유의해서 보자

 

LinkedList (링크드 리스트)

> 연결리스트, 데이터 접근성이 나쁨 (불연속적인 자료들을 다루다보니, 접근성이 나쁨)

doubly LinkedList (더블리 링크드 리스트)

> 이중 연결리스트, 접근성 향상 (앞과 뒤의 참조주소를 저장해두어 링크드리스트보다 접근성 높임)

doubly circular LinkedList (더블리 서큘러 링크드 리스트)

> 이중 원형 연결리스트, 맨 처음에서 끝을 조회하는데 걸리는 접근성을 높여줌

 

ArrayList  vs  LinkedList  성능비교

ArrayList = 배열기반 (연속적)

LinkedList = 연결기반 (불연속적)

 

읽기(접근시간) 우위
ArrayList > LinkedList (LinkedList는 데이터가 많을 수록 접근성이 떨어짐)

 

추가/삭제 우위
LinkedList > ArrayList (순차적인 추가삭제는 ArrayList가 더 빠름)

'개인공부' 카테고리의 다른 글

스택과 큐의 활용  (0) 2022.08.16
Stack & Queue  (0) 2022.08.15
collection / ArrayList  (0) 2022.08.15
익명클래스  (0) 2022.08.15
내부클래스  (0) 2022.08.15

댓글