본문으로 바로가기

[Java] Array, ArrayList 차이점

category Program/Java 2021. 8. 30. 01:42

Array

  • 배열의 길이는 고정되어 변경 불가
  • primitive Type, Reference Type 둘 다 저장 가능
  • 정해진 배열 요소내에서 참조가 많을 경우 좋은 성능을 기대할 수 있음

ArrayList

  • Array를 이용해 만든 List형 자료구조
  • Array와 다르게 길이 할당을 하지 않지만 내부적으로는 add()로 데이터 추가할 때 배열의 최대크기가 넘으면 2배 크기의 배열을 만들고 원본을 복사하여 재생성 (내부적으로 Arrays.copy()메서드를 사용할 듯)
  • 빈번하게 요소의 추가, 삭제가 이루어 질때는 메모리 재할당이 들어가므로 Array에 비해 성능이 떨어질 수 있음
  • Default 길이는 10
  • primitive Type(autoboxing), Reference Type 둘 다 저장 가능
  • Primitive Type을 저장, 참조할때 autoboxing,unboxing 처리가 들어가기 때문에 이땐 Array 보다 성능 떨어짐