Posts [Java] Array, Vector, ArrayList, LinkedList
Post
Cancel

[Java] Array, Vector, ArrayList, LinkedList

Array

  • 정적 길이 제공
  • 크기를 한번 결정하면 변경할 수 없다.
  • 데이터 탐색에 유리하다. (Random Access) ➡ O(1)
  • 데이터 추가, 삭제에 불리하다. ➡ O(n)

Vector

  • 동적 길이 제공
  • 동기화 기능 제공
  • 크기를 한번 결정해도 변경할 수 있다. ➡ capacity를 초과하면 현재 크기의 100%가 증가한다.
  • 데이터 탐색에 유리하다. ➡ O(1)
  • 데이터 추가, 삭제에 불리하다. ➡ O(n)
  • Java 1.0에서 추가되었다.

ArrayList

  • 동적 길이 제공
  • 동기화 기능 미제공
  • 크기를 한번 결정해도 변경할 수 있다. ➡ capacity를 초과하면 현재 크기의 50%가 증가한다.
  • 데이터가 순서대로 늘어선 Array 형식의 구조이다.
  • 데이터 탐색에 유리하다. ➡ O(1)
  • 데이터 추가, 삭제에 불리하다. ➡ O(n)
  • 데이터 추가, 삭제 시 메모리를 재할당하기 때문에 Array보다 속도가 느리다.
  • Java 1.2에서 추가되었다.

LinkedList

  • 동적 길이 제공
  • 크기를 한번 결정해도 변경할 수 있다.
  • 데이터가 순서대로 늘어선 것이 아니라, 데이터의 주소 값으로 연결되어 있는 구조이다.
  • 데이터 탐색에 불리하다. ➡ O(n)
  • 데이터 추가, 삭제에 유리하다. ➡ O(1)
  • Java 1.2에서 추가되었다.

References

This post is licensed under CC BY 4.0 by the author.