Array vs Arraylist

공통점

  • 메모리상에 연달아 공간을 확보
  • index로 접근 가능
  • 요소를 추가하거나, 가져올 때 성능 비슷 → ArrayList가 크키 조절이 필요할 때 성능 차이 발생!!
  • 중복되는 요소 저장 가능
  • Null 값 저장 가능

차이점

  • Array는 고정 길이이고 Arraylist는 가변 길이이다.
    • 내부적으로 default size 10인 배열으로 구성 → 최적화로 인해 막 생성하면 사이즈 0
    • 편리함의 대가로 array보다 살짝 느림 → 코딩테스트에서는 array를 사용하는 것이 낫다!
    • ArrayList는 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장
    • 새로운 배열의 크기는 기존 배열보다 1.5배 크다.
  • Array는 primitive type, Object 타입의 데이터 모두 저장 가능하고, ArrayList는 Object 타입만 가능하다.
  • Array는 for 또는 for-each loop를 통해 array를 순회할 수 있고, ArrayList는 iterator를 사용해 순회할 수 있다.
  • Array는 정의된 타입의 데이터만 저장이 가능하고 ArrayList는 Generics(제네릭스)를 통해 Type-Safety를 보장한다.
  • Array는 다차원이 가능하고 ArrayList는 항상 단일 차원이다.

 

 

 

참조

https://velog.io/@humblechoi/자료구조-Array-vs-ArrayList

https://prol0gue.tistory.com/9

'자료구조' 카테고리의 다른 글

LinkedList : 링크드 리스트  (0) 2023.01.09