공통점
- 메모리상에 연달아 공간을 확보
- 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는 항상 단일 차원이다.
참조
'자료구조' 카테고리의 다른 글
LinkedList : 링크드 리스트 (0) | 2023.01.09 |
---|