Arrays.asList(array)将返回一个List,然而这个返回的List并不支持add和remove的操作
2012-07-09 10:16
417 查看
我们都知道,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));
这是什么原因呢?
这里的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));
相关文章推荐
- Arrays.asList方法返回的List不能执行add、remove操作
- Arrays.asList() 返回的list不能add,remove
- Arrays.asList()返回的List不能add和remove
- Arrays.asList() 返回的list不能add,remove以及慎用java.util.Collections.copy()方法
- Arrays.asList()为什么不能支持add()和remove()
- Arrays.asList() 返回的list不能add,remove
- 关于 Arrays.asList add、remove 操作的 UnsupportedOperationException
- Arrays.asList不能remove、add等,抛UnsupportedOperationException
- Arrays.asList 转换数组后add或remove出现java.lang.UnsupportedOperationException异常
- Arrays.aslist新建的list集合不能add(),set(),remove()你知道吗?
- 数组转换为List(Arrays.asList)后add或remove出现UnsupportedOperationException
- Arrays.asList返回的有限操作的List
- 为什么Java里的Arrays.asList不能用add和remove方法?
- Arrays.asList( ) 返回一个特殊的“ArrayList”
- Arrays.asList() 得到 集合 执行 add() 和 remove() 抛 UnsupportedOperationException 异常
- 解决Arrays.asList不能用add或remove
- 数组转换为List(Arrays.asList)后add或remove出现UnsupportedOperationException
- 为什么Java里的Arrays.asList不能用add和remove方法?
- 数组转换为List(Arrays.asList)后add或remove出现UnsupportedOperationException
- Arrays.asList的到的List进行remove操作报java.lang.UnsupportedOperationException