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

Java 9에서 변경할 수 없는 컬렉션을 초기화하는 방법은 무엇입니까?

<시간/>

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