컬렉션 불변 복사
한 번의 호출로 모든 컬렉션의 불변 복사본을 만듭니다.
코드 비교
✕ Java 8
List<String> copy =
Collections.unmodifiableList(
new ArrayList<>(original)
);
✓ Java 10+
List<String> copy =
List.copyOf(original);
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
스마트 복사
원본이 이미 불변이면 복사를 건너뜁니다.
한 번의 호출
ArrayList 수동 생성과 래핑이 필요 없습니다.
방어적 복사
원본을 변경해도 복사본에 영향을 주지 않습니다.
이전 방식
수동 복사 + 래핑
모던 방식
List.copyOf()
JDK 버전
10
난이도
초급
JDK 지원
컬렉션 불변 복사
사용 가능
JDK 10 (2018년 3월) 이후 널리 사용 가능
동작 원리
List.copyOf(), Set.copyOf(), Map.copyOf()는 기존 컬렉션의 불변 스냅샷을 만듭니다. 원본이 이미 불변 컬렉션이라면 복사가 생략됩니다.
관련 문서