개발(React | Java)/자바 기초 | 문법

컬렉션 프레임워크(List, Set, Map) 기초 — 배열을 넘어선 자료구조

dev-parrot 2025. 12. 8. 18:28

컬렉션 프레임워크는 배열보다 훨씬 강력하고 유연한 자료 구조입니다.
Java로 실무 개발을 하려면 List, Set, Map은 반드시 이해해야 합니다.

이번 글에서는 입문자가 가장 많이 사용하는
ArrayList / HashSet / HashMap 중심으로 핵심 기능을 쉽게 정리했습니다.


📌 목차

  1. 컬렉션 프레임워크란?
  2. List — ArrayList
  3. Set — HashSet
  4. Map — HashMap
  5. List / Set / Map 비교
  6. 반복문(향상된 for & forEach)
  7. 실전 예제
  8. 자주 하는 실수
  9. 마무리
  10. 대표 태그

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 입문 등으로 확장해보겠습니다.