java声明不可变数组_如何使数组元素在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[]) {

//创建一个字符串数组

String strArray[] = {"Raju", "Rama", "Rahman", "Rachel", "Ranbhir", "Rangan"};

//将字符串数组转换为列表对象

List list = Arrays.asList(strArray);

//将List对象转换为不可变

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值