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

Làm thế nào chúng ta có thể tạo một Tập hợp không thể sửa đổi trong Java 9?

Phương thức nhà máy tĩnh không thể thay đổi Set.of () có thể cung cấp một cách thuận tiện để tạo không thể sửa đổi bộ trong Java 9.

Bản sao của một tập hợp được tạo bằng cách sử dụng Set.of () phương pháp có các đặc điểm sau.

  • Tập hợp được trả về bởi một phương thức gốc theo quy ước không thể thay đổi . Có nghĩa là không thể thêm vào các phần tử , đã loại bỏ hoặc đã thay thế từ một Tập hợp. Cuộc gọi của bất kỳ kẻ đột biến nào trên Set gây ra UnsupportedOperationException .
  • Nếu các phần tử chứa trong Tập hợp là có thể thay đổi , nó có thể khiến nội dung của Bộ thay đổi.
  • Một bất biến bộ có thể được tạo bằng các phương thức gốc của nhà máy tĩnh không cho phép null các yếu tố. Nếu chúng tôi đang cố gắng tạo với các phần tử null, nó sẽ ném NullPointerException .
  • Nó từ chối trùng lặp phần tử tại thời điểm tạo tập hợp bất biến. Các phần tử trùng lặp được chuyển đến một phương thức gốc của nhà máy tĩnh dẫn đến IllegalArgumentException .
  • Thứ tự lặp lại của các phần tử tập hợp là không xác định và có thể thay đổi.

Cú pháp

Set.of(E... elements)

Ví dụ

import java.util.Set;
public class SetOfMethodTest {
   public static void main(String args[]) {
      Set<String> names = Set.of("Adithya", "Bhavish", "Chaitanya", "Jai");
      System.out.println("Names - " + names);
      names.add("Raja");       // throws UnsupportedOperationException
   }
}

Đầu ra

Names - [Bhavish, Adithya, Jai, Chaitanya]
Exception in thread "main" java.lang.UnsupportedOperationException
 at java.base/java.util.ImmutableCollections.uoe(Unknown Source)
 at java.base/java.util.ImmutableCollections$AbstractImmutableSet.add(Unknown Source)
   at SetOfMethodTest.main(SetOfMethodTest.java:8)