[CS] Array vs ArrayList vs LinkedList

giggle·2023년 8월 20일
0

Array는 index로 빠르게 텍스트값을 찾는 것이 가능함
LinkedList는 데이터의 삽입 및 삭제가 빠름
ArrayList는 데이터를 찾는데 빠르지만, 삽입 및 삭제가 느림

📌 Array

장점

  • 모든 원소의 주소를 알고 있음 == index
    따라서 임의의 원소 값을 읽거나 찾을 때 유리

단점

  • 배열에 새로운 원소를 추가하는 것이 어려움
    Array는 선언 시 크기와 데이터 타입을 지정함 -> 미리 메모리 공간을 할당할 사이즈가 정해져있는 자료구조
    공간이 모자라면 모든 원소를 새로운 위치의 메모리로 옮겨야 함 -> 속도가 느려짐
    이를 개선하기 위해, 메모리를 미리 확보하고 있음 -> 단, 추가하는 일이 없다면 메모리를 낭비하는 것..

📌 Linked List

장점

  • 새로운 원소 추가, 삭제가 쉬움
    삽입 & 삭제가 자유로워서 원소를 따로 옮길 일이 없음 -> 이전 원소가 무엇을 가리키는지만 바꾸면 되기 때문!

단점

  • 특정한 원소를 읽기가 안좋음
    모든 원소를 한번에 다 읽을때는 상관없지만, 특정 원소를 찾아야 할 때는 순차접근밖에 할 수 없음

📌 ArrayList

장점

  • 크기를 정하지 않기 때문에 새로운 데이터 추가&삭제가 가능함
    Array와 달리 선언 시 크기를 정해주지 않는다 -> 단, 순서가 중요
    순서와 index가 존재하기 때문에 데이터를 찾기 쉬움

단점

  • 단, 새로운 원소 추가, 삭제가 느림
    순서에 따라서 줄줄이 밀리거나 당겨지기 때문에 시간이 오래걸림

참고


피드백 및 개선점은 댓글을 통해 알려주세요😊

profile
배움을 글로 기록하는 개발자가 되겠습니다.

0개의 댓글