| 배열(Array) | ArrayList | |
|---|---|---|
| 크기 | 크기가 고정되어 있으며 생성 시 크기를 지정해야 한다. | 크기가동적으로 변경되며, 요소 추가 시 자동으로 확장됨. |
| 타입 | 기본 데이터 타입(int[],double[]등) 사용 가능. | 제네릭을 사용하여 객체만 저장 가능(ArrayList<Intger>) |
| 메모리 사용 | 연속적인 메모리 공간을 사용하여 효율적 | 내부적으로 배열을 사용하지만 크기 변경 시 새로운 배열을 생성해 데이터를 복사 |
| 성능 | 데이터 접근이 빠름(O(1)),크기 변경 시 데이터 이동 불필요 | 데이터 접근이 빠르지만(O(1)),크기 확장 시 복사가 필요해 성능 저하 가능 |
| 기능 | 단순한 데이터 저장/읽기만 가능하며, 별도의 메서드가 없음 | add(),remove(),contains() 등 다양한 메서드 제공 |
| 유연성 | 크기가 고정되어 유연성 부족. | 크기가 동적으로 변해 유연하게 사용 가능 |