컬렉션 프레임워크는 배열보다 훨씬 강력하고 유연한 자료 구조입니다.
Java로 실무 개발을 하려면 List, Set, Map은 반드시 이해해야 합니다.이번 글에서는 입문자가 가장 많이 사용하는
ArrayList / HashSet / HashMap 중심으로 핵심 기능을 쉽게 정리했습니다.
📌 목차
- 컬렉션 프레임워크란?
- List — ArrayList
- Set — HashSet
- Map — HashMap
- List / Set / Map 비교
- 반복문(향상된 for & forEach)
- 실전 예제
- 자주 하는 실수
- 마무리
- 대표 태그
1️⃣ 컬렉션 프레임워크란?
Java에서 데이터를 관리(저장·삭제·찾기)하기 위한 표준 자료 구조 모음입니다.
기존 배열의 한계를 해결해줍니다.
✔ 배열의 한계
- 크기 변경 불가
- 삽입/삭제 어려움
- 객체 중심 개발에 불편
✔ 컬렉션의 장점
- 동적 크기 조절
- 다양한 자료구조 제공
- 편리한 메서드 지원(add, remove 등)
대표 컬렉션:
- List
- Set
- Map
2️⃣ List — ArrayList (가장 많이 사용)
List는 순서가 있고(index), 중복 허용됩니다.
가장 대표적인 구현체는 ArrayList.
✔ 선언
ArrayList<String> list = new ArrayList<>();
✔ 추가
list.add("Java");
list.add("Spring");
✔ 읽기
System.out.println(list.get(0));
✔ 수정
list.set(1, "React");
✔ 삭제
list.remove(0);
✔ 크기 확인
list.size();
3️⃣ Set — HashSet (중복 제거)
Set은 중복을 허용하지 않는 자료구조입니다.
순서가 없기 때문에 index로 접근할 수 없습니다.
✔ 선언
HashSet<String> set = new HashSet<>();
✔ 추가
set.add("A");
set.add("B");
set.add("A"); // 중복 → 저장되지 않음
✔ 포함 여부 확인
set.contains("A");
✔ 삭제
set.remove("A");
4️⃣ Map — HashMap (key/value 구조)
Map은 key-value 형태로 데이터 저장합니다.
key는 중복 불가, value는 중복 가능.
✔ 선언
HashMap<String, Integer> map = new HashMap<>();
✔ 추가
map.put("age", 20);
map.put("score", 95);
✔ 값 가져오기
map.get("age"); // 20
✔ 값 변경
map.put("age", 30);
✔ key 존재 여부
map.containsKey("age");
✔ 삭제
map.remove("score");
5️⃣ List / Set / Map 비교
| 구조 | 중복 | 순서 | 접근방식 |
| List | O | O | index |
| Set | X | X | 값으로 확인 |
| Map | key만 X | key는 순서 없음 | key로 접근 |
6️⃣ 컬렉션 반복 방법
✔ 향상된 for문
for (String item : list) {
System.out.println(item);
}
Set도 동일하게 가능.
✔ Map 반복하기
for (String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
7️⃣ 실전 예제
✔ 1) 학생 이름 리스트 출력
ArrayList<String> students = new ArrayList<>();
students.add("Tom");
students.add("Jane");
for (String s : students) {
System.out.println(s);
}
✔ 2) 중복 없는 사용자 ID 목록
HashSet<String> ids = new HashSet<>();
ids.add("user1");
ids.add("user2");
ids.add("user1"); // 중복 제거됨
✔ 3) 회원 정보 관리 (Map 활용)
HashMap<String, String> user = new HashMap<>();
user.put("name", "Tom");
user.put("email", "tom@test.com");
System.out.println(user.get("email"));
8️⃣ 자주 하는 실수
❌ Map에서 key 없을 때 get 호출 → null 반환
null 체크 필수.
❌ Set의 순서 보장 기대
Set은 순서가 없음 → 출력 순서 일정하지 않음.
❌ 제네릭 타입 미사용
ArrayList list = new ArrayList(); // X
제네릭 사용 필수:
ArrayList<String> list = new ArrayList<>();
9️⃣ 마무리
이번 글에서는 Java 기초 문법의 마지막 단계인 컬렉션 프레임워크를 정리했습니다.
✔ ArrayList — 순서 + 중복
✔ HashSet — 중복 제거
✔ HashMap — key/value 구조
✔ 향상된 for문
✔ 실전 예제
이제 Java 기초 시리즈는 모두 완료되었습니다!
다음 단계는 예외 처리, 파일 입출력, 람다/Stream, 그리고 Spring 입문 등으로 확장해보겠습니다.
'개발(React | Java) > 자바 기초 | 문법' 카테고리의 다른 글
| 📘 Java 파일 입출력 (2) File I/O 기초 — File, FileReader, BufferedReader, FileWriter 완전 정리 (0) | 2025.12.09 |
|---|---|
| 📘 Java 예외 처리 (1) 예외(Exception) 처리 기초 — try/catch, throw, finally 완전 정리 (0) | 2025.12.09 |
| 인터페이스(Interface) & 추상 클래스(Abstract Class) 완전 정리 — OOP 핵심 (0) | 2025.12.08 |
| 상속(Inheritance), 오버라이딩(Overriding), 오버로딩(Overloading) 완전 정리 (0) | 2025.12.07 |
| 생성자(Constructor), this, 접근제어자 — 객체지향의 핵심 개념 정리 (0) | 2025.12.07 |