
🧠 TIL - Java 16일차: Map, Properties, Iterator, 장난감 공장 실습 설계
오늘은 자바 컬렉션 중 Map 계열의 주요 구현체들과, 설정 정보를 저장하는 Properties, 컬렉션을 순회하는 Iterator, 그리고 실전 예제로 장난감 공장 객체 설계를 학습했습니다.
📚 Map 컬렉션
✅ 구조 및 특징
Key - Value 쌍으로 구성된 자료구조
Key: 중복 불가(Set과 유사)
Value: 중복 가능(List와 유사)
동일한 Key에 값을 넣으면 기존 값이 덮어쓰기됨
🔑 주요 메서드
put(key, value) : 값 저장
get(key) : 값 조회
remove(key) : 값 삭제
containsKey(key) : 키 존재 여부 확인
🌳 주요 Map 구현 클래스
클래스명 특징
HashMap 가장 일반적인 Map. 순서 보장 X. 빠른 접근 성능
Hashtable 동기화 지원(스레드 안전). 느림
LinkedHashMap 입력 순서를 유지
TreeMap Key를 정렬된 상태로 저장
Properties Key, Value 모두 String. 설정 파일에 사용 (.properties 파일)
🗂️ Properties
.properties 파일과 연동해 설정 정보를 저장/관리하는 데 사용
Key와 Value는 항상 문자열(String)
구조: 키=값 형태로 저장
사용 예: DB 설정, 언어팩, 외부 설정 등
한글은 유니코드로 저장됨
🔁 Map 순회 방법
1. keySet() 이용
java
복사
편집
Set keys = map.keySet();
for (K key : keys) {
System.out.println(key + " : " + map.get(key));
}
2. entrySet() 이용 (Key + Value 한 쌍으로 접근)
java
복사
편집
for (Map.Entry<K, V> entry : map.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
🧵 Iterator
컬렉션을 일관성 있게 순회하기 위한 인터페이스
✨ 주요 메서드
메서드 설명
hasNext() 다음 요소가 있는지 확인
next() 다음 요소 반환
remove() 현재 요소 삭제 (반복 중 안전하게 삭제 가능)
⚠️ 주의
일반 for-each문은 remove()를 쓸 수 없음
삭제가 필요한 경우에는 반드시 Iterator 사용!
✅ Iterator 예시
java
복사
편집
Iterator it = list.iterator();
while (it.hasNext()) {
String item = it.next();
if (item.equals("banana")) it.remove();
}
🧸 실습: 장난감 공장 예제 설계
📦 com.toyFactory.model.dto.Toy
java
복사
편집
필드:
메서드:
java
복사
편집
public void addMaterials(String... materials) {
for (String m : materials) {
// 처리
}
}
🧠 오늘의 요약
Map은 Key-Value 구조이며, 다양한 구현체를 통해 상황에 맞게 사용
Properties는 설정 정보를 텍스트 파일로 관리할 때 활용
Iterator는 안전하고 일관된 컬렉션 순회 도구
실전 예제로 ToyFactory 예제를 설계하며, 실무 설계 감각도 함께 익힘