如何讓 Java 中陣列的元素不可變?


不行,您不能讓陣列元素不可變。

但是java.util.Collections 類的unmodifiableList() 方法接受 List 介面的物件(實現其類的物件),並返回給定物件的不可變形式。使用者只能**只讀**方式訪問獲得的列表。

並且ArrayList 類的asList() 方法接受陣列並返回 List 物件。

因此,要轉換一個不可變的陣列−

  • 獲得所需的陣列。

  • 使用asList() 方法將其轉換為列表物件。

  • 將獲得的列表作為引數傳遞給unmodifiableList() 方法。

示例

 線上演示

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

輸出

[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)

更新日期: 2019-10-15

3K+ 瀏覽

開啟你的職業生涯

完成課程獲得認證

立即開始
廣告
© . All rights reserved.