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

Làm thế nào để làm cho các phần tử của mảng trở nên bất biến trong Java?

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.

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)