Java 9에서는 여러 팩토리 메소드가 컬렉션 에 추가되었습니다. API . 이러한 팩토리 메서드를 사용하여 수정할 수 없는 코드 줄 수를 줄이기 위해 컬렉션 개체를 나열, 설정 및 매핑합니다. List.of(), Set.of() , Map.of() 및 Map.ofEntries() 불변 을 생성하는 편리한 방법을 제공하는 정적 팩토리 메서드입니다. 컬렉션 자바 9에서.
불변 컬렉션의 이점
- 힙 공간 감소: 컬렉션 데이터를 저장하는 데 필요한 공간은 이전 Java 버전의 기존 접근 방식에 비해 매우 적습니다.
- 더 빠른 데이터 액세스: 데이터를 저장하고 Collections.unmodifiable로 래핑하는 오버헤드로 감소하여 이제 데이터 액세스가 더 빨라집니다. 이는 전반적인 효율성 프로그램이 향상되었음을 의미합니다.
- 스레드 안전성 :변경할 수 없는 컬렉션은 기본적으로 스레드로부터 안전합니다. . 모든 스레드가 기본 데이터에 대해 항상 동일한 보기를 갖기 때문입니다.
구문
List.of(elements...) Set.of(elements...) Map.of(k1, v1, k2, v2)
예
import java.util.Set; import java.util.List; import java.util.Map; public class ImmutableCollectionsTest { public static void main(String args[]) { List<String> stringList = List.of("a", "b", "c"); System.out.println("List values: " + stringList); Set<String> stringSet = Set.of("a", "b", "c"); System.out.println("Set values: " + stringSet); Map<String, Integer> stringMap = Map.of("a", 1, "b", 2, "c", 3); System.out.println("Map values: " + stringMap); } }
출력
List values: [a, b, c] Set values: [a, b, c] Map values: {a=1, b=2, c=3}