ArrayList는 인덱스 접근 속도가 LinkedList에 비해 훨씬 빠르다.
LinkedList는 데이터 추가 및 삭제가 ArrayList에 비해 훨씬 빠르다.
그 이유는 아래와 같다.
LinkedList의 원리.
LinkedList는 위와 같은 데이터 구조로 생겼다.
1번째 인덱스에 Jerry를 추가하라는 코드를 입력하면
0번째 인덱스와 1번째 인덱스를 잇는 와이어를 끊고, Jerry를 추가 한다음 다시 와이어를 잇는다.
데이터를 접근 할 때는 Head에서 시작해서 Next, Next 이동하여 2번째 인덱스까지 접근한다.
만약 5000번 인덱스에 있는 데이터를 출력하려면 Next, Next, Next, Next... 이동하여 찾기 때문에 인덱스값이 클 수록 찾는 속도가 느리다.
ArrayList의 특징.
namesArrayList에 "John", "Paul", "George", "Ringo가 있는데, 여기에 1번째 인덱스에 Jerry를 추가하였다.
그러면 기존의 4개보다 한 개 더 큰 Array를 만들고, "John", "Jerry" "Paul", "George", "Ringo"를 넣는 작업을 한다.
데이터 추가 삭제 시 이러한 액션을 반복하기 때문에 LinkedList에 비해 데이터 추가, 삭제가 느리다.
반면에 데이터에 접근하는 속도는 LinkedList보다 훨씬 빠른데, 그 이유는 ArrayList 0번째 인덱스나 50,0000번째 인덱스나 접근속도가 동일하기 때문이다.
[출저] : https://www.youtube.com/watch?v=5dscMs2hnDI&list=TLPQMTUxMDIwMjI-0ze2xaE6FQ&index=3