HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🍗
[New] 조규현팀
/
🏪
TS Store
/
👜
ArrayList & LinkedList
👜

ArrayList & LinkedList

Person
완료율%
상태
완료
나의 블로그
Think Sharing (TS)
🏓
ArrayList & LinkedList
주제내용🦋 ArrayList🌟 LinkedListRandom Access Data Structure (비순차적 자료구조)Sequential Access Data Structure (순차적 자료구조)접근방법저장 방식삽입과 삭제결론
 

주제

  • ArrayList와 LinkedLikst를 비교하며 알아봅시다.
 

내용

🦋 ArrayList

notion image
  • 내부적으로 데이터를 배열에서 관리한다.
  • 배열과 다른 부분은 생성할 때 크기를 고정하지 않아도 동적으로 늘어난다. (초기 용량은 10)
  • 각 데이터는 인덱스를 가지고 있어 한 번에 참조가 가능하다.

🌟 LinkedList

notion image
  • 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. -위키백과
  • 노드의 자료 주소 값을 통해 연결되어 있는 구조
  • 논리적 저장 순서와 물리적 저장 순서가 일치하지 않는다.
  • 트리의 근간이 되는 자료구조
 

Random Access Data Structure (비순차적 자료구조)

  • 다른 자료에 의지하지 않고 접근 할 수 있는 방법
  • 책 목차의 페이지를 보고 원하는 페이지로 바로 갈 수 있는 예시
  • Array, ArrayList

Sequential Access Data Structure (순차적 자료구조)

  • 다른 자료에 의지하며 접근하는 방법
  • 다른 element를 거치지 않고는 접근을 할 수 없는 구조
  • 지하철은 다른 노선들을 거쳐야만 도착 할 수 있는 예시
  • Stack, Queue, LinkedList
 

접근방법

  • ArraysList
    • Random Access Data Structure : 자료에 비순차적으로 접근한다.
    • O(1)
  • LinkedList
    • Sequential Access : 자료에 접근할 때 순차적으로 검색하면서 찾는다.
    • O(n)
 

저장 방식

  • Arrays List
    • 메모리에 연이어 저장된다.
  • LinkedList
    • 새로운 요소는 메모리 어딘가에 저장된다.
    • 새로운 요소에 할당된 메모리 위치 주소는 이전 노드에 저장된다.
 

삽입과 삭제

notion image
  • ArrayList
    • 용량에 벗어나는 경우 새로운 배열을 만들어 복사한다.
    • 그래서 초기용량을 예측하기 쉽지 않지만 대략적으로라도 생각해보고 설정하는 것이 좋다.
    • 삭제의 경우 중간이나 처음의 원소를 삭제한다면 빈 공간을 다시 채워야 하는 과정이 필요하기 때문에 비효율적입니다.
  • LinkedList
    • 새로운 요소는 빈 메모리 위치에 저장되고, 이전 노드에 메모리 위치 주소를 변경해준다. O(1)
    • 원하는 위치 접근 후 삽입 삭제시 원소를 찾기 위해서 O(n)의 시간이 추가적으로 발생
    •  

결론

  • 순차적 추가/삭제의 경우 ArrayList가 LinkedList보다 빠르다.
    • 조회가 빈번하다면 ArrayList
  • 중간 데이터를 추가/삭제 하는 경우에는 LinkedList가 ArrayList보다 빠르다.
    • 삽입 삭제가 빈번하다면 LinkedList
  • 공간 복잡도는 ArrayList가 유리하다.
    • LinkedList는 노드와 포인터로 관리된다.
    • prev, next를 유지하는 포인터라는 오버헤드가 발생하게 된다.