자료구조 with 자바

준비중..

자료구조 with 자바

데이터를 효율적으로!

03 배열 리스트(array-list)

# 배열 리스트(array-list) ## 목차 1. 배열리스트란? 2. 장점 3. 단점 4. 언제 사용하면 좋을까? 5. 구현 ## 1. 배열 리스트란? 배열 리스트는 배열을 사용한 리스트이다. ![Imgur](https://i.imgur.com/tg4tRAG.png) 여기서 리스트는 순서를 갖는 자료구조로서, 데이터간 공백이 없다. ![Imgur](https://i.imgur.com/7VHadXk.png) ## 2. 장점 배열리스트는 읽기 속도가 O(1)로 빠르다. 왜? 고정된 연속적 메모리 공간을 차지하기 때문. ## 3. 단점 1. 데이터 삽입(또는 삭제) 시, 속도가 O(n)으로 느리다. 왜? 기존 항목을 시프트 해야하기 때문. ![Imgur](https://i.imgur.com/P1hmydd.png) ![Imgur](https://i.imgur.com/xXYg4N1.png) 2. 배열의 크기가 큰 경우, 메모리 할당이 곤란할 수 있다. 3. 크기가 고정되어 있다. 배열이 꽉 차면 크기를 새롭게 늘리고 복사해줘야 한다. ## 4. 언제 적용하면 좋을까? 단순 읽기(read) 및 쓰기(write) 작업이 많은 데이터에 좋다. 삽입(insert) 및 삭제(remove) 연산이 많은 경우, 연결리스트(`linked-list`)를 추천한다. ## 5. 구현 배열 리스트의 구현은 아래 실습 문제를 통해 연습해보자.

Challenge

개념 실습! 학습 내용을 진짜 내 것으로 만들기!