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

Làm cách nào chúng ta có thể tạo một Danh sách không thể sửa đổi trong Java 9?


Danh sách được coi là không thể sửa đổi nếu các phần tử không thể được thêm , đã loại bỏ hoặc đã thay thế từ danh sách khi một phiên bản không thể thay đổi của danh sách đã được tạo. Phương thức nhà máy tĩnh: List.of () cung cấp một cách thuận tiện để tạo danh sách không thể sửa đổi trong Java 9 .

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

  • Danh sách được trả về bởi một phương thức gốc thường là không thay đổi . Có nghĩa là không thể thêm các phần tử , đã loại bỏ hoặc đã thay thế từ một danh sách. Gọi bất kỳ kẻ đột biến nào phương pháp trên Danh sách gây ra UnsupportedOperationException .
  • Nếu các phần tử chứa trong Danh sách là có thể thay đổi , nó có thể khiến nội dung của Danh sách thay đổi.
  • Có thể tạo danh sách bất biến bằng các phương thức gốc tĩnh không cho phép các phần tử rỗng . 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 .
  • Danh sách không thể thay đổi được có thể thay đổi tuần tự nếu tất cả các phần tử đều có thể tuần tự hóa.
  • Thứ tự của các phần tử trong danh sách giống với thứ tự của các tham số được cung cấp hoặc của các phần tử trong mảng được cung cấp.

Cú pháp

List.of(E... elements)

Ví dụ

import java.util.List;
public class UnmodifiedListTest {
   public static void main(String[] args) {
      List<String> countries = List.of("India", "Australia", "England", "Newzealand");
      System.out.println("Countries - " + countries);
      countries.add("Srilanka"); // throws UnsupportedOperationException
   }
}

Đầu ra

Countries - [India, Australia, England, Newzealand]
Exception in thread "main" java.lang.UnsupportedOperationException
 at java.base/java.util.ImmutableCollections.uoe(Unknown Source)
 at java.base/java.util.ImmutableCollections$AbstractImmutableList.add(Unknown Source)
 at UnmodifiedListTest.main(UnmodifiedListTest.java:7)