기본 패턴
java
List<String> list = new ArrayList<>();
Set<String> set = new HashSet<>();
Map<String, Integer> map = new HashMap<>();설명
- Java 컬렉션은 단순히 "데이터를 여러 개 담는 상자"가 아니라, 순서, 중복 허용 여부, 키-값 관계 같은 정책 차이를 타입으로 드러내는 구조입니다.
List는 순서가 있고 중복을 허용하는 목록에 잘 맞습니다.Set은 중복 없는 집합,Map은 키로 값을 찾는 사전에 잘 맞습니다.- 같은 컬렉션이라도 구현체 선택도 중요합니다.
ArrayList,HashSet,HashMap은 보통 기본 선택지로 많이 쓰이지만, 삽입/정렬/순회 특성이 바뀌면 다른 구현이 더 맞을 수 있습니다. - 컬렉션은 배열보다 훨씬 유연하지만, 그만큼 어떤 추상 타입을 써야 의도가 잘 드러나는지도 고민해야 합니다. 변수 타입을
List로 둘지ArrayList로 둘지조차 설계 선택입니다. - Java 학습에서 컬렉션은 후반부가 아니라 중반 핵심입니다. 실제 애플리케이션 코드는 대부분 여러 값을 다루고, 이때 어떤 자료구조를 고르느냐가 코드 품질에 큰 영향을 줍니다.
빠른 정리
| 타입 | 잘 맞는 상황 |
|---|---|
List | 순서가 중요하고 중복 허용 |
Set | 중복 제거가 중요 |
Map | 키로 값을 빠르게 찾고 싶을 때 |
| 구현체 | ArrayList, HashSet, HashMap이 기본 출발점 |
| 실무 팁 | 구현보다 인터페이스 타입으로 받는 편이 유연함 |
주의할 점
"여러 개 담아야 하니 그냥 List"로 시작하면 의도가 흐려질 수 있습니다. 중복 허용 여부와 키 기반 조회 필요성을 먼저 보고 자료구조를 고르는 편이 좋습니다.
참고 링크
2 sources