Data Structure (자료구조)

비전공자는 도전해볼 수 있고, 전공자는 쉽게 배울 수 있는 데이터 스트럭쳐 수업

Data Structure (자료구조) 비전공자는 도전해볼 수 있고, 전공자는 쉽게 배울 수 있는 데이터 스트럭쳐 수업

Array List

소개

Array List는 배열을 이용해서 리스트를 구현한 것을 의미합니다. 장점은 내부적으로 배열을 이용하기 때문에 인덱스를 이용해서 접근하는 것이 빠릅니다. 하지만 데이터의 추가와 삭제가 느립니다.

데이터의 추가

Array List는 내부적으로 데이터를 배열에 저장합니다. 배열의 특성상 데이터를 리스트의 처음이나 중간에 저장하면 이후의 데이터들이 한칸씩 뒤로 물러나야 합니다.

데이터의 삭제

삭제도 추가와 비슷합니다. 빈자리가 생기면 빈자리를 채우기 위해서 순차적으로 한칸씩 땡겨야 합니다.

데이터를 가져오기

인덱스를 이용해서 데이터를 가져오고 싶을 때 Array로 구현한 리스트는 매우 빠릅니다. 메모리 상의 주소를 정확하게 참조해서 가져오기 때문이죠.

배열을 건물에 비유해봅시다. 각각의 엘리먼트는 그 엘리먼트에 대한 인덱스를 가지고 있습니다. 인덱스를 안다는 것은 주소를 알고 있는 것과 같습니다. 반면에 인덱스를 모르는 것은 주소를 모르고 집을 찾아가는 것과 같기 때문에 시간이 오래 걸립니다. 인덱스만 알고 있다면 Array list에서 데이터를 가져오는 것은 매우 빠릅니다.

댓글

댓글 본문
  1. Fiesto
    유튜브 강의를 듣고나니 의문이 남네요.

    배열에서 데이터가 삭제될 때 해당 인덱스에서 데이터는 사라지지만

    인덱스는 그대로 남아있으니 반환되는 메모리는 아예 없는 건가요?

    아니면 인덱스는 남아있어도 안에 담겨있던 데이터가 사라지니

    메모리 반환이 아주 조금이라도 되는 건가요?

    질문이 조금 난잡해졌네요..

    질문의 요지는 배열의 크기가 지정될 때 메모리 크기도 함께 할당이 될 텐데 그 안에 데이터가 들어가거나

    빠짐으로써 할당된 메모리의 크기에 변화가 있는가 하는 것이었습니다.
  2. SangHyeok Kim
    2017/03/30 수강완료!
    감사합니다!!
  3. pisteuo
    안녕하세요 많이 배우고 갑니다.
    개인 정리용 블로그에 개념정리겸 정리해서 보관하려고 합니다.
    감사합니다 ^^
    http://pisteuo.hol.es/wp/
  4. 임준용
    수업 잘 듣고갑니다.
  5. bepositive1223
    웹서비스 구현하는 것보다 자료구조를 이해하는 것이 더 중요한데...

    같이 공부하시는 분이 적네요..

    컨텐츠가 연재중이라 그런가?
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기