Script

Array vs LinkedList 본문

CS

Array vs LinkedList

scripter. 2022. 12. 9. 17:17

Array란?

 

특징

  • 데이터들이 순서대로 쭉 나열되어있는 형태
  • index가 존재함

조회

  • 각 데이터의 index를 가지고 있고 무작위 접근이 가능하기 때문에,
    index로 각 데이터에 직접 접근이 가능

데이터 삽입과 삭제

  • 데이터의 삽입과 삭제 시 그만큼 index를 맞춰주어야 함
  • 예시 : 5개의 데이터가 있을 때 맨 앞을 삭제했다면 뒤쪽의 나머지 4개는 앞으로
    한 칸씩 이동해야됨
  • 이로 인해 삽입과 삭제가 많다면 Array는 비효율적임
LinkedList

특징

  • 각 데이터들 앞, 뒤 데이터의 주소값을 가지고 있음
  • index가 존재하지 않음

조회

  • 순차적 접근이기 때문에 조회의 속도가 느리다

데이터 삽입과 삭제

  • 데이터의 삽입과 삭제 시 앞, 뒤의 데이터에 주소값만 변경해주면됨
  • 예시 : 5개의 데이터가 있을 때 두 번째 데이터를 삭제 했다면 1번 데이터에 3번의 주소값을
    주고 3번 데이터에 1번 데이터의 주소값을 넣어주면된다
  • 이로 인해 삽입과 삭제가 많다면 Array에 비해 효율적임

Array vs LinkedList
  • 소량의 데이터를 바탕으로 측정하면 큰 차이는 없다
  • 위의 퍼포먼스 테스트처럼 조회 시에는 Array가 우위에 있고
  • 삽입/삭제 시에는 LinkedList가 우위에 있다 (특히 삭제)
    1. 삽입/삭제 시에 처음 혹은 마지막부터 순차적으로 데이터를 삭제한다고 하면
    Array도 충분히 빠르다
    2. 하지만 중간부터(비순차적)으로 삽입/삭제하는 경우에는 LinkedList가 빠르다

 

'CS' 카테고리의 다른 글

HTTP와 HTTPS의 차이  (0) 2022.11.23
SSR과 CSR / SPA와 MPA  (0) 2022.11.14
쿠키와 세션의 차이  (0) 2022.11.11
RESTful API란  (0) 2022.11.09
브라우저에 'naver.com'을 입력하면 일어나는 일  (0) 2022.11.01
Comments