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와 LinkedList의 차이 ‼️

목차

  • ArrayList, LinkedList 간략 설명
  • 어떻게 다르고 왜 그런가?

내용

What💨 [그들은 무엇인가]

ArrayList

  • 배열 기반
    • 일반 배열과는 다름.(메모리 할당 크기 지정 필수)
    • 인덱스 기반 접근이 가능

LinkedList

  • 리스트 기반
    • 양방향 연결 리스트
    • 참조를 이용함(포인터)
      • 다음 또는 이전의 방향을 가르킨다고 생각하면 됨
 

How, why diff❓ [어떻게 왜 다른가]

두 자료구조에 대한 결정적 차이

  • 데이터 조회
    • ArrayList > LinkedList
    • 왜일까 ❓
      • 배열 기반과 리스트 특성의 차이 떄문이다.
      • 💡
        배열은 인덱스 기반으로 값을 접근하기 때문에 시간복잡도 1을 갖는다. 하지만 리스트의 경우 맨 처음 값은 1로 접근할 수 있지만 마지막에서 3번째라고 가정했을 때? 결국 약 n번 정도를 순회해야 한다. 그렇기 떄문에 조회 속도는 ArrayList가 월등하다 ‼️
  • 데이터의 삽입과 삭제
    • ArrayList < LinkedList
    • 왜일까 ❓
      • 삽입 일 때 [배열기반] - (삭제일 때도 유사한 그림)
        • notion image
        💡
        생각해보면 배열은 삽입과 삭제시 그 뒤에 있는 원소들 또한 옆으로 밀리거나 땡겨오는 액션을 취하는 것을 볼 수 있다. 그렇기 떄문에 결국 최대 n-1번의 액션이 취해지므로 링크드 리스트에 비해 효율이 좋지 못하다‼️
      • 링크드 리스트를 보자 보자 어디보자‼️
      • notion image
        💡
        다음 대상 혹은 이전의 참조를 갈아끼면 되므로 그 뒤나 앞에 있는 원소들이 땡겨오거나 밀리는 액션을 취할 필요가 없기 때문에 배열에 비해 상당히 효율적이다.
         

📌 REFER

https://dev-coco.tistory.com/19
https://www.nextree.co.kr/p6506/
https://devlog-wjdrbs96.tistory.com/64