[Java] Array와 ArrayList를 알아보자!
🚀 1. Array (배열)
배열이란?
- 같은 데이터 타입의 변수들로 이루어진 자료구조
- 자바에서 기본적으로 지원하는 자료구조
배열의 장점
- index는 값에 대한 유일무이한 식별자 → 인덱스를 통한 검색이 용이하다.
- 연속된 메모리의 공간으로 이루어져 있다. → 연속적이므로 메모리 관리가 편하다.
배열의 단점
- 정적이므로 배열의 크기를 컴파일 이전에 정해주어야 한다. → 컴파일 이후 배열의 크기를 변동 할 수 없다. → 메모리가 낭비됨.
🪐 2. List (리스트)
리스트란?
- 배열과 유사하게, 같은 데이터 타입의 변수들로 이루어진 자료구조
- 순서가 있는 데이터의 집합이며, 데이터의 중복을 허용한다.
- 자바에서 기본적으로 지원하는 자료구조
- 배열과 달리 크기가 가변적이다.
- 중간의 빈 공간을 허용하지 않는다.
리스트의 장점
- 포인터를 통하여 다음 데이터의 위치를 가리키고 있어 삽입 삭제의 용이. → 추가/삭제 성능이 좋다.
- 불연속적으로 메모리 공간을 차지. → 불연속적이므로 메모리 관리가 편리하다.
리스트의 단점
- 검색 성능이 좋지 않다.
- 포인터를 통해 다음 데이터를 가리키므로 추가적인 메모리 공간이 발생한다.

🌟 3. ArrayList (배열리스트)
ArrayList란?
- List 인터페이스를 상속받은 여러 클래스 중 하나이다.
ArrayList 특징
- 배열과 유사하게 index 식별자 활용이 가능하다.
- 리스트의 특성인 동적 할당 가능하다. → 크기가 가변적이다.
- 타입 안정성을 보장해주는 제네릭 사용이 가능하다.
🌌 Array와 ArrayList는 어떤 경우에 사용하면 좋을까?
Array
- 데이터 개수가 고정적이고 삽입, 삭제가 빈번하지 않은 경우
- 데이터 접근이 빈번한 경우
- 기본 자료형(int, char, double..) 사용하고 싶은 경우
ArrayList
- 데이터 개수가 고정적이지 않고, 삽입, 삭제가 빈번할 경우
- 데이터 접근이 드물 경우
이 글을 읽는 모두, 좋은 하루 되세요. 😄
안녕하세요! 201팀의 포이입니다. 글을 깔끔하게 잘 정리해주신 것 같아요!!
글에 대한 조금의 피드백을 노션 문서로 정리해보았습니다. 시간나실때 확인 부탁드려요!
https://cheddar-liquid-051.notion.site/9219c7bc09b1425a89b8d1e70c8fc5fd?pvs=4