[CS스터디]Array vs ArrayList vs LinkedList

지영·2023년 5월 16일
0

CS

목록 보기
6/77

이번에는 자료구조 중 가장 기본적으로 배우는 '배열'과 '리스터'에 관한 포스팅입니다.

📢 Array와 Linked List과 ArrayList는 언제 쓰일까

: 여러 개의 원소를 저장하고 싶다면 배열과 리스트라는 방법으로 해결할 수 있습니다.

⚒️ Array, Linked List, ArrayList의 차이점

1. Array

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

2. Linked List

  • 장점
    * 새로운 원소 추가, 삭제가 쉬움
    • 삽입 & 삭제가 자유로워서 원소를 따로 옮길 일이 없음 -> 이전 원소가 무엇을 가리키는지만 바꾸면 되기 때문!
  • 단점
    * 특정한 원소를 읽기가 안좋음
    • 모든 원소를 한번에 다 읽을때는 상관없지만, 특정 원소를 찾아야 할 때는 순차접근밖에 할 수 없음

3. ArrayList : Array의 단점을 해결하기 위해 생긴 자료구조

  • 장점
    * 크기를 정하지 않기 때문에 새로운 데이터 추가&삭제가 가능함
    • Array와 달리 선언 시 크기를 정해주지 않는다 -> 단, 순서가 중요
    • 순서와 index가 존재하기 때문에 데이터를 찾기 쉬움
  • 단점
    * 단, 새로운 원소 추가, 삭제가 느림
    • 순서에 따라서 줄줄이 밀리거나 당겨지기 때문에 시간이 오래걸림
profile
꾸준함의 힘을 아는 개발자가 목표입니다 📍

0개의 댓글