Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java
- Board
- MVC
- Uipath
- 상속
- Oracle
- View
- db
- Eclipse
- Database
- jquery
- spring
- 이클립스
- Scanner
- Array
- string
- 조건문
- 자료구조
- jsp
- Thymeleaf
- html
- SpringBoot
- API
- JDBC
- rpa
- 문자열
- Controller
- mysql
- 배열
- React
Archives
- Today
- Total
유정잉
자바 List, Set, Map 정의 및 예시 본문
자바에서 가장 많이 쓰는 컬렉션 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가지
- 데이터에 순서가 필요한가? → List
- 중복을 허용해야 하는가? → Set 또는 List
- 키-값 쌍으로 저장해야 하는가? → 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은 거의 매일 씀
💡 "뭘 써야 할지 모르겠을 때" 팁
- 일단 List로 시작하고, 필요에 따라 Set이나 Map으로 전환
- 데이터를 다룰 때 질문하기:
- 중복 허용돼? 순서 중요해? 특정 키로 찾을 일이 있어?
✅ 실전 예: 자주 쓰는 조합
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 |