Java 9는 공장을 제공합니다. 방법 불변 생성 목록 , 세트 , 및 지도 . 빈 을 만드는 데 유용할 수 있습니다. 또는 비어 있지 않음 컬렉션 개체. Java 8 및 이전 버전에서는 unmodifiableXXX 와 같은 컬렉션 클래스 유틸리티 메서드를 사용할 수 있습니다. 불변 생성 컬렉션 개체. 변경할 수 없는 목록을 만들어야 하는 경우 Collections.unmodifiableList()를 사용하세요. 방법.
이러한 팩토리 메서드를 사용하면 비어 있는지 변경할 수 없는 컬렉션을 쉽게 초기화할 수 있습니다. 또는 비어 있지 않음
불변 목록 초기화:
List<Integer> immutableEmptyList = List.of();
위에서 우리는 비어 있는 불변 을 초기화했습니다. 목록 .
불변 집합의 초기화:
Set<Integer> immutableEmptySet = Set.of();
위에서 우리는 비어 있는 불변 을 초기화했습니다. 설정 .
불변 지도 초기화:
Map<Integer, Integer> immutableEmptyMap = Map.of();
위에서 우리는 비어 있는 불변 을 초기화했습니다. 지도 .
예시
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; public class ImmutableCollectionTest { public static void main(String args[]) { List<String> list8 = new ArrayList<String>(); list8.add("INDIA"); list8.add("AUSTRALIA"); list8.add("ENGLAND"); list8.add("NEWZEALAND"); List<String> immutableList8 = Collections.unmodifiableList(list8); immutableList8.forEach(System.out::println); System.out.println(); List<String> immutableList = List.of("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND"); immutableList.forEach(System.out::println); System.out.println(); Set<String> immutableSet = Set.of("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND"); immutableSet.forEach(System.out::println); System.out.println(); Map<String, String> immutableMap = Map.of("INDIA", "India", "AUSTRALIA", "Australia", "ENGLAND", "England", "NEWZEALAND", "Newzealand"); immutableMap.forEach((key, value) -> System.out.println(key + " : " + value)); System.out.println(); } }
출력
INDIA AUSTRALIA ENGLAND NEWZEALAND INDIA AUSTRALIA ENGLAND NEWZEALAND AUSTRALIA ENGLAND NEWZEALAND INDIA AUSTRALIA : Australia ENGLAND : England NEWZEALAND : Newzealand INDIA : India