Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để khởi tạo tập hợp bất biến trong Java 9?

Java 9 cung cấp nhà máy phương pháp để tạo bất biến danh sách , bộ bản đồ . Nó có thể hữu ích để tạo trống hoặc không trống đối tượng sưu tập. Trong Java 8 và các phiên bản trước đó, chúng tôi có thể sử dụng các phương thức tiện ích lớp thu thập như unmodifiableXXX để tạo bất biến đối tượng sưu tập. Nếu chúng tôi cần tạo một danh sách bất biến thì hãy sử dụng Collections.unmodifiableList () phương pháp.

Các phương thức gốc này cho phép chúng tôi dễ dàng khởi tạo các tập hợp bất biến cho dù chúng có trống hoặc không trống.

Khởi tạo danh sách bất biến:

List<Integer> immutableEmptyList = List.of();

Ở trên, chúng tôi đã khởi tạo một giá trị trống, không thể thay đổi Danh sách .

Khởi tạo tập hợp không thay đổi:

Set<Integer> immutableEmptySet = Set.of();

Ở trên, chúng tôi đã khởi tạo một giá trị trống, không thể thay đổi Đặt .

Khởi tạo bản đồ bất biến:

Map<Integer, Integer> immutableEmptyMap = Map.of();

Ở trên, chúng tôi đã khởi tạo một giá trị trống, không thể thay đổi Bản đồ .

Ví dụ

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();
   }
}

Đầu ra

INDIA
AUSTRALIA
ENGLAND
NEWZEALAND

INDIA
AUSTRALIA
ENGLAND
NEWZEALAND

AUSTRALIA
ENGLAND
NEWZEALAND
INDIA

AUSTRALIA : Australia
ENGLAND : England
NEWZEALAND : Newzealand
INDIA : India