자료구조 -Array, ArrayList, LinkedList, List

최장범·2023년 10월 20일
0

TIL

목록 보기
48/50

자료구조

Array (배열)

  • 연속된 메모리 공간에 순차적으로 저장된 데이터 모음
  • 메모리 공간에 필요한 영역을 미리 정해두고 사용하기에 크기를 반드시 지정해야한다.
  • 변하지 않는 정적인 크기의 데이터를 다룰때 적합하다.
  • 선언된 값은 다시 선언하지 않는 이상은 변경이 안된다.
  • 배열을 구성하는 각각의 값을 'element', 위치를 'index'라고 한다.
int[] array = new int[3]

List (리스트)

  • 선형 자료구조
  • 빈번하게 사용되는 자료구조 중 하나
  • 배열과 달리 다량의 데이터를 다루는데 좋음
  • 중복된 데이터의 저장을 허용
  • 인덱스가 중요하지 않고 element의 순서가 중요하다

ArrayList (배열 리스트)

  • 배열의 단점을 보완한 배열을 이용해 구현된 리스트
  • 크기를 정해주지 않아도 되는 선형 리스트
  • 인덱스를 이용해 내부의 객체를 관리한다.
  • 데이터가 추가되어 용량이 초과되면 자동으로 용량을 늘린다.
  • 데이터의 추가 / 삭제가 느리다
    - 데이터가 배열에 저장되는 것이므로, 중간 index 에 특정 데이터를 추가, 삭제하면 이후의 데이터들이 한칸씩 뒤로 움직여야 하는 번거로움이 있다.

LinkedList (연결 리스트)

  • 선형 구조의 자료구조
  • 메모리의 제한이 없다
  • 순서를 유지하면서 추가, 삭제가 쉽다.
  • 구성요소는 'Node'는 데이터와 포인터로 구성되어있다.
  • 시작은 'Head', 리스트의 마지막 노트는 'Tail' 이라고 한다.
  • 공간 효율이 좋지는 않다.
  • 특정 데이터를 찾을때 head부터 순차적으로 찾기에 접근 속도가 느리다
  • 데이터의 추가, 삭제 후 연결을 재구성 해야한다.

한 줄 생각

  • 그냥 공부하고 넘어가는 것보다, 그날 공부한 것을 글로써 작성을 하는것은 이해에 대한 깊이가 다르다.

0개의 댓글