Java에서 배열과 리스트를 어떻게 구분해야 하는가
Java에서 여러 값을 담는 가장 기본적인 선택지는 배열과 리스트다. 둘 다 순서를 가진 데이터를 담는다는 점은 같지만, 사용 방식과 제약은 꽤 다르다.
배열의 특징
배열은 같은 타입의 값을 고정된 크기로 담는 구조다.
1
int[] numbers = new int[10];
배열의 핵심 특징:
- 크기가 고정된다
- 인덱스로 접근한다
- 메모리 구조가 단순하다
배열은 성능과 단순성이 장점이지만, 크기 변경이 불편하다.
리스트의 특징
리스트는 컬렉션 프레임워크 안에서 크기를 유연하게 다룰 수 있는 추상화다.
1
List<String> names = new ArrayList<>();
리스트의 장점:
- 크기를 동적으로 조절할 수 있다
- 컬렉션 API를 함께 쓸 수 있다
- 다양한 구현체를 상황에 따라 바꿀 수 있다
즉, 애플리케이션 코드에서는 배열보다 리스트가 더 자주 등장한다.
언제 배열이 더 적합한가
- 크기가 고정된 데이터
- 성능과 단순성이 중요할 때
- 라이브러리나 저수준 API가 배열을 요구할 때
예를 들어 이미지 버퍼, 고정 길이 테이블, 원시 타입 처리에서는 배열이 자연스럽다.
언제 리스트가 더 적합한가
- 원소 수가 가변적일 때
- 추가/삭제가 자주 일어날 때
- 컬렉션 API 활용이 필요할 때
대부분의 비즈니스 로직에서는 리스트가 더 실용적이다.
배열과 리스트를 혼동하기 쉬운 지점
배열은 언어 차원의 구조고, List는 인터페이스다. 그래서 둘은 단순히 “옛날 것 vs 최신 것” 관계가 아니라, 추상화 수준이 다르다.
- 배열: 언어 기본 구조
- 리스트: 컬렉션 프레임워크 추상화
정리
배열은 고정 크기와 단순성이 강점이고, 리스트는 가변성과 API 활용성이 강점이다. 어떤 것이 더 좋다기보다, 데이터 크기 변화와 사용 맥락에 어떤 쪽이 더 맞는가를 기준으로 고르는 편이 정확하다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
댓글
아직 댓글이 없습니다