Arrays.asList(array)将返回一个List,然而这个返回的List并不支持add和remove的操作

本文详细解释了如何将数组转换为List,并强调了通过Arrays.asList()得到的List对象不支持add和remove操作的原因。同时提供了将数组转换为支持增删操作的ArrayList的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们都知道,List的一个典型的特性就是其长度是可变的,我们可以很方便地对它进行插入和删除元素的操作,这是它与数组所存在的一个很大的区别,后者的长度是固定的,而且我们不能从数组中删除元素,只能修改元素的值。利用Arrays.asList(array)将返回一个List,然而这个返回的List并不支持add和remove的操作。
这是什么原因呢?


这里的ArrayList并不是java.util.ArrayList,而是Arrays的内部类:




先说一下,使用ArrayList也只能生成有相同数据的一个新对象,然后在这上面进行数据的添加和删除等操作,而不可能对原来的数组进行数据删除操作,原来的String数组是不变的。
转换为ArrayList的代码如下(用现成的方法就行了,不用使用循环去逐个add):
String[] s = {"aa","bb","cc","dd","ee"};

ArrayList<String> list = new ArrayList<String>();
list.addAll(Arrays.asList(s));

或者可以更简洁地写为一句:
ArrayList<String> list = new ArrayList<String>(Arrays.asList(s));

转载于:https://www.cnblogs.com/lcuzhanglei/archive/2012/07/09/2582270.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值