如何在 Java 中使数组元素不可变?

javaobject oriented programmingprogramming更新于 2024/6/29 23:55:00

不,您不能使数组元素不可变。

但是 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[]) {
      //创建字符串数组
      String strArray[] = {"Raju", "Rama", "Rahman", "Rachel", "Ranbhir", "Rangan"};
      //将字符串数组转换为列表对象
      List<String> list = Arrays.asList(strArray);
      //将 List 对象转换为不可变对象
      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)

相关文章