Array vs ArrayList vs LinkedList

김하영·2023년 5월 22일
0

선형자료구조

목록 보기
3/5
  • Array : 크기가 정해져 있음, index로 빠르게 값을 찾는 것이 가능
  • ArrayList : 크기 정해져 있지 않음, 데이터를 찾는데 빠르지만, 삽입 및 삭제가 느림
  • LinkedList : 데이터의 삽입/삭제가 빠름

배열

  • 배열의 단점
    • 선언 시 크기와 데이터 타입을 지정해야하므로 데이터가 계속 늘어날 때, 최대사이즈를 알 수 없을 때는 사용하기 부적합
    • 중간에 데이터를 삽입/삭제할 때도 비효율적이다.
  • 장점 : index가 존재하기 때문에 위치를 바로 알 수 있어 검색에 편하다.

List

기본적으로 사이즈를 정해놓은 배열에서 불편했던 점들을
해결하기 위해 나온 List!!

  • List는 array처럼 크기를 지정해주지 않아도 된다. 대신 array에서 index가 중요했다면, list에서는 순서가 중요하다.
  • 장점: 크기가 정해져 있지 않기 때문에 중간에 데이터를 추가하거나 삭제하더라도 array에서 갖고 있던 문제점을 해결 가능하다. index를 가지고 있으므로 검색도 빠르다.
  • 단점: 하지만 중간에 데이터를 추가/삭제할 때 시간이 오래 걸린다는 단점이 존재한다.(삽입/삭제시 줄줄이 당겨지거나 밀려날때 진행되는 연산이 추가되고 메모리도 낭비된다.)

LinkedList

  • 연결 리스트는 한노드에 연결될 노드의 포인터 위치를 가리키는 방식으로 되어있다.

  • 장점: 삽입/삭제가 용이하다(데이터의 중간에 삽입 및 삭제를 할때, 전체를 돌지 않아도 이전값과 다음값이 가르켰던 주소만 수정하여 연결시켜주면 되기 때문에 빠르게 진행할 수 있다.)

  • 하지만 특정 위치의 값을 찾는 것에서는 비효율 적이다.

  • 단점 : 검색에 불리하다. (array나 arrayList에서는 index를 갖고 있기때문에 검색이 빠르지만, linkedList는 처음부터 살펴봐야하므로 검색에 있어서는 시간이 더 걸린다)

    참고자료

    https://gyoogle.dev/blog/computer-science/data-structure/Array%20vs%20ArrayList%20vs%20LinkedList.html

profile
백엔드 개발자로 일하고 싶어요 제발

0개의 댓글