Array와 List

Array(배열)

  • 같은 타입의 변수들로 이루어진 유한 집합
  • 배열을 구성하는 각각의 값을 배열 요소(element)라고 한다.
  • 배열에서의 위치를 가리키는 숫자는 index라고 한다.
    • index는 0을 포함한 양수만을 가질 수 있다.

장점

  • 인덱스를 통한 검색이 용이하다.
  • 메모리 관리가 편하다.
  • element 접근 시 O(1)에 접근할 수 있다.

단점

  • 배열의 크기를 컴파일 이전에 정해야 한다.
  • 컴파일 이후 배열의 크기를 변동할 수 없다.

List

  • 순서가 있는 데이터의 모임
  • 배열과는 다르게 빈 element는 허용하지 않는다.
  • 불연속적인 메모리 공간을 차지한다.
  • 선형구조라고 불린다.

장점

  • 포인터를 통해 다음 데이터의 위치를 가르켜고 있어 삽입/삭제가 용이하다
  • 크기가 정해져 있지 않다.
  • 메모리의 재사용이 편리하다.

단점

  • 검색 성능이 좋지 않다.
  • 포인터를 통해 다음 데이터를 가르키므로 추가적인 메모리 공간이 필요하다.

정리

  • Array : 데이터의 크기가 정해져 있고, 추가적인 삽입/삭제가 일어나지 않으며 검색을 많이 할 경우
  • List : 데이터의 크기가 정해져 있지 않고, 삽입/삭제가 많이 일어나며 검색이 적은 경우

참고 자료