Không, bạn không thể làm cho các phần tử của một mảng là bất biến.
Nhưng unmodifiableList () phương thức của java.util.Collections lớp chấp nhận một đối tượng của giao diện Danh sách (đối tượng thực hiện lớp của nó) và trả về một dạng không thể thay đổi của đối tượng đã cho. Người dùng chỉ có quyền truy cập chỉ đọc vào danh sách thu được.
Và asList () phương thức của ArrayList lớp chấp nhận một mảng và trả về một đối tượng Danh sách.
Do đó, để chuyển đổi một mảng không thay đổi -
-
Có được mảng mong muốn.
-
Chuyển đổi nó thành một đối tượng danh sách bằng cách sử dụng asList () phương pháp.
-
Chuyển danh sách thu được dưới dạng tham số cho unmodifiableList () phương pháp.
Ví dụ
import java.util.Arrays; import java.util.Collections; import java.util.List; public class UnmodifiableExample { public static void main(String args[]) { //Creating a string array String strArray[] = {"Raju", "Rama", "Rahman", "Rachel", "Ranbhir", "Rangan"}; //Converting the string array to list object List<String> list = Arrays.asList(strArray); //Converting the List object to immutable List<String> immutable = Collections.unmodifiableList(list); System.out.println(immutable); immutable.add("komala"); } }
Đầu ra
[Raju, Rama, Rahman, Rachel, Ranbhir, Rangan] Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at September19.UnmodifiableExample.main(UnmodifiableExample.java:19)