Data structure

[자바] LinkedList와 ArrayList

지후0816 2021. 5. 8. 15:08

linkedList 구조

위 그림 설명) 

1) 최초에 정수 1이 메모리에 저장된다.

2) 정수 2의 메모리 주소가 정수 1이 속한 메모리에 저장돼 있다. ( 요소 하나가 데이터 저장과 포인터 역할을 동시에 한다. )

3) 추가된 데이터 정수 4의 메모리 주소는 정수 3에 저장되는 형태로 값이 추가된다.

4) 만약, 정수 4의 값을 얻으려면 ( linkedList.get(4) ) 정수 1, 2, 3 을 거쳐서 얻게 된다.

 

 

 

1) 데이터 접근 방식과 성능

 

ArrayList(배열)은 선언 및 초기화 시, 크기가 고정되고 메모리에 한 부분에 무리의 형태로 연속되어 저장된다.

index를 통해 데이터에 접근하며, 선언된 배열이 각 index의 주소를 담기 때문에 데이터에 접근이 빠르다.

 

LinkedList은 원하는 값을 얻을 때까지 연결된 값들을 차례대로 찾아야하므로 많은 값을 담을수록 데이터에 접근이

느리다.

 

결론 : 저장할 데이터의 크기가 정해져있거나, 데이터의 양이 많다면 ArrayList를 사용해야 유리하고,

        데이터가 지속적으로 추가될 여지가 있고, 데이터의 양이 적다면 LinkedList를 사용하는 게 유리하다.