유정잉

자바 List, Set, Map 정의 및 예시 본문

개발자 공부/🧸 자바 공부

자바 List, Set, Map 정의 및 예시

유정♡ 2025. 5. 9. 11:20

자바에서 가장 많이 쓰는 컬렉션 3종 세트
✅ List
✅ Set
✅ Map

 

✅ 1. List — 순서 O, 중복 O

대표 클래스: ArrayList

🔹 선언 및 추가

import java.util.*;

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("apple");  // 중복 가능

🔹 출력

System.out.println(list);  // [apple, banana, apple]

for (String item : list) {
    System.out.println(item);
}

✅ 2. Set — 순서 X, 중복 X

대표 클래스: HashSet, TreeSet

🔹 선언 및 추가

import java.util.*;

Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple");  // 중복 무시됨

🔹 출력

System.out.println(set);  // [banana, apple] (순서 보장 X)

for (String item : set) {
    System.out.println(item);
}

🔹 정렬된 Set이 필요할 경우 → TreeSet

Set<String> treeSet = new TreeSet<>();
treeSet.add("banana");
treeSet.add("apple");
treeSet.add("cherry");

System.out.println(treeSet);  // [apple, banana, cherry]

✅ 3. Map — 키:값 쌍 저장

대표 클래스: HashMap

🔹 선언 및 값 넣기

import java.util.*;

Map<String, Integer> map = new HashMap<>();
map.put("apple", 2);
map.put("banana", 5);
map.put("apple", 3);  // 같은 키면 덮어씀

🔹 출력

System.out.println(map);  // {banana=5, apple=3}
System.out.println(map.get("apple"));  // 3

🔹 반복 출력

for (String key : map.keySet()) {
    System.out.println(key + " : " + map.get(key));
}

또는

for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " = " + entry.getValue());
}

🔚 정리 표

구분 순서 중복 키:값 대표 클래스
List O O ArrayList
Set X X HashSet, TreeSet
Map X 키X HashMap

 


✅ 실무에서 컬렉션 선택 기준 3가지

  1. 데이터에 순서가 필요한가? → List
  2. 중복을 허용해야 하는가? → Set 또는 List
  3. 키-값 쌍으로 저장해야 하는가? → Map

✅ 상황별 컬렉션 선택 예시

실무 상황 컬렉션 이유
게시판 글 목록 출력 List<Post> 순서 있음, 중복 허용
이미 등록된 이메일 체크 Set<String> 중복 불가, 빠른 검색
제품 ID → 제품명 매핑 Map<Integer, String> 키-값 구조 필요
유저가 선택한 항목들 List<String> or Set<String> 순서가 중요하면 List, 중복 제거하려면 Set
설문 응답 결과 저장 (문항번호 → 응답값) Map<String, String> 키-값 매핑 구조
키워드 검색어 목록 (중복 없이 정렬됨) TreeSet<String> 중복 제거 + 자동 정렬
 

✅ 실무에서 가장 자주 쓰는 컬렉션

 

컬렉션 실사용도 주로 쓰는 예
ArrayList ★★★★★ 목록, 리스트, 반복 가능한 데이터 저장
HashMap ★★★★★ 아이디-값, 코드-이름, 등 매핑 구조
HashSet ★★★★☆ 중복 제거, 체크용 플래그 저장
TreeMap/TreeSet ★★☆☆☆ 자동 정렬이 필요할 때
LinkedList ★☆☆☆☆ 거의 안 씀 (특정 경우 제외)

 

✅ 요약:
실무에서 ArrayList랑 HashMap은 거의 매일 씀


💡 "뭘 써야 할지 모르겠을 때" 팁

  1. 일단 List로 시작하고, 필요에 따라 Set이나 Map으로 전환
  2. 데이터를 다룰 때 질문하기:
    • 중복 허용돼? 순서 중요해? 특정 키로 찾을 일이 있어?

✅ 실전 예: 자주 쓰는 조합

Map<String, List<String>> userMenus = new HashMap<>();

👉 사용자의 ID에 따라 선택한 메뉴 리스트를 저장하는 구조

728x90

'개발자 공부 > 🧸 자바 공부' 카테고리의 다른 글

스스로 자바 연습해서 문제 풀어 보기 !!!  (0) 2024.02.24
2일차 용어정리  (0) 2024.02.21
1일차 용어정리  (0) 2024.02.20
java [ 반복문 ]  (0) 2024.02.13
java [ 조건문 ]  (1) 2024.02.13