Array vs List

namkun·2023년 5월 29일
0

T-I-L

목록 보기
6/20

Array

  • 메모리 상에 데이터가 연속적으로 저장
  • 순차적으로 저장된 데이터를 참조할 때는 인덱스가 활용된다.
  • 고정된 크기를 갖는다. (데이터 개수가 정해져있다.)
  • 논리적 저장 순서와 물리적 저장 순서가 동일하다.
  • cache hit rate( cpu가 참조하고자 하는 메모리가 캐시에 존재하는 비율) 이 높다.
  • 추가적으로 소모되는 메모리 양이 거의 없다. (데이터 크기를 미리 정해두고 사용하기때문에)
  • 삽입/삭제에 o(n) - 데이터의 연속적 형태를 유지하기 위해
  • 데이터 접근에 o(1)

List

  • 배열이 갖는 인덱스라는 장점을 버리고, 빈틈없는 데이터의 적재라는 장점을 취한 인터페이스
  • Linked List, Array List등의 선형 자료 구조를 구현할 때 사용되는 추상 자료형
  • 배열은 크기가 정해져있고, 메모리 상에 데이터가 연속적으로 있어야 하기 때문에 메모리의 낭비가 발생. 그러나 리스트는 빈 공간을 허용하지 않기에 메모리 낭비가 없다.
  • Data들이 순차적으로 구성된 집합, 그러나 일반적으로 Data가 메모리 상에 연속적으로 저장되지 않음 ( 실제 메모리 주소 랜덤 ). 그렇기에 Cache Hit Rate가 낮다.
  • 크기가 가변적이다.
  • 삽입, 삭제, 접근에 O(N) 소요
  • 삽입, 삭제, 크기 등 해당 리스트를 사용하기 위한 메서드를 따로 구현할 필요가 없다.
profile
개발하는 중국학과 사람

0개의 댓글