Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9에서 변경할 수 없는 컬렉션의 이점은 무엇입니까?


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}