본문 바로가기

java

Linked List vs Array List

 

순차적인 추가 - ArrayList : 550.41ms

순차적인 추가 - LinkedList : 1828.78ms

--------------------------------------------------

--------------------------------------------------

순차적인 삭제 - ArrayList : 39.98ms

순차적인 삭제 - LinkedList : 98.39ms

--------------------------------------------------

--------------------------------------------------

중간 데이터 삭제 - ArrayList : 9.68ms

중간 데이터 삭제 - LinkedList : 0.1ms

--------------------------------------------------

--------------------------------------------------

중간 데이터 추가 - ArrayList : 8.26ms

중간 데이터 추가 - LinkedList : 0.02ms

--------------------------------------------------

--------------------------------------------------

데이터 검색 - ArrayList : 0.01ms

데이터 검색 - LinkedList : 12.6ms

--------------------------------------------------

 

순차적인 추가, 순차적인 삭제, 데이터 검색은 Array List 속도가 빨랐고
중간 데이터 삭제, 중간 데이터 추가는 Linked List가 시간이 더 단축되었다.


[Array List의 삽입 과정]


[Linked List의 삽입 과정]

이러한 둘의 삽입 과정을 비교해보면 Array List는 사이즈가 고정되어 있기 때문에 삽입 시 사이즈를 늘려주는 연산이 추가되어야 하고 삭제 시에는 순차적인 인덱스 구조로 인해서 삭제된 빈 인덱스를 채워야 하기 때문에 채워주는 연산이 추가되어야 한다. 이러한 부가적인 연산은 삽입 + 삭제가 빈번하게 발생되는 프로세스에 치명적이고 낭비되는 메모리도 많아지게 된다.


[Array List의 삭제 과정]


[Linked List의 삭제 과정]

반면 Linked List는 Array List와 같이 뒤로 밀거나 채우는 작업 없이 단지 주소만 연결시켜 주면 되기 때문에 추가 + 삭제가 용이하다. 따라서 삽입 + 삭제가 빈번하게 발생하는 프로세스는 Linked List를 사용! 위의 결과값과 같이 중간 데이터 삭제 + 삽입 속도가 Array List 보다 월등히 빠름을 볼 수 있음
but Array List는 무작위 접근이 가능하여 데이터 검색 속도가 Linked List보다 월등히 빠름을 알 수 있다.

따라서 Array List와 Linked List는 직접 코드로 구현해봐야 그 차이를 확실히 알 수 있다고 하셨다.

참고 문헌에 각각의 List를 구현해볼수 있는 코드가 구현되어 있으니 헷갈린다면 아래 링크를 따라가도 좋을 것 같다.

 

참고 문헌 Linked List vs Array List

 

자료구조: Linked List 대 ArrayList

2014년 모두들 어떤 목적과 계획을 갖고 살고 계신지요? 저는 올 한해 “Go to the Base”를 목표로 여러 계획을 세웠는데요. 그 중 하나가 과거 5년 동안 저를 되 돌아 보고 부족했던 기본 지식을 탄

www.nextree.co.kr

 

 

'java' 카테고리의 다른 글

Java Arrays.sort(), Collection.sort() 정렬 알고리즘  (1) 2024.10.19
Java 시간 유형에 대한 고민  (1) 2024.04.19
HashMap 의 동작 원리  (1) 2024.02.27
method class instance object  (0) 2022.09.23
생성자 내부클래스  (1) 2022.09.23