JAVA · 컬렉션
불변 컬렉션 (List.of, Map.of)
Java 9+의 팩토리 메서드로 불변 컬렉션을 생성하고 활용합니다.
컬렉션중급List.ofMap.of불변컬렉션Java9
핵심 설명
Java 9+의 팩토리 메서드로 불변 컬렉션을 생성하고 활용합니다.
Java code
import java.util.*;
public class ImmutableCollections {
public static void main(String[] args) {
// List.of — 불변 리스트
List<String> list = List.of("A", "B", "C");
// list.add("D"); // UnsupportedOperationException
// Set.of — 불변 집합
Set<Integer> set = Set.of(1, 2, 3);
// 중복 시 IllegalArgumentException
// Map.of — 최대 10개 엔트리
Map<String, Integer> map = Map.of("a", 1, "b", 2);
// Map.ofEntries — 10개 초과
Map<String, Integer> large = Map.ofEntries(
Map.entry("key1", 1),
Map.entry("key2", 2),
Map.entry("key3", 3)
);
// 기존 컬렉션을 불변으로 복사
List<String> mutable = new ArrayList<>(List.of("X", "Y"));
List<String> immutable = List.copyOf(mutable);
mutable.add("Z"); // 원본은 변경 가능
System.out.println(mutable); // [X, Y, Z]
System.out.println(immutable); // [X, Y] (영향 없음)
// Collections.unmodifiable* vs List.of
// unmodifiable: 래퍼 (원본 변경 반영)
// List.of/copyOf: 독립 복사본
}
}학습 팁
List.of()는 null을 허용하지 않습니다. null이 포함될 수 있으면 Collections.unmodifiableList()를 사용하세요.
주의할 점
Set.of(1, 1)처럼 중복 요소를 넘기면 IllegalArgumentException이 발생합니다. 중복이 있을 수 있으면 Set.copyOf(list)를 사용하세요.
자주 묻는 질문
불변 컬렉션 (List.of, Map.of)란 무엇인가요?
Java 9+의 팩토리 메서드로 불변 컬렉션을 생성하고 활용합니다.
불변 컬렉션 (List.of, Map.of) 학습 시 주의할 점은 무엇인가요?
Set.of(1, 1) 처럼 중복 요소를 넘기면 IllegalArgumentException 이 발생합니다. 중복이 있을 수 있으면 Set.copyOf(list) 를 사용하세요.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.