A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cj286 中级黑马   /  2016-1-2 23:31  /  1111 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String[] str = {"a","b","c"};               
List<String> list = Arrays.asList(str);
list.add("d");
这时或抱一个java.lang.UnsupportedOperationException异常,数组都转为集合了,集合可以随便添加元数,为什么就是转了之后就不可以在添加了?原理是什么?

6 个回复

倒序浏览
       public static void main(String[] args) {

                String[] str ={"a","b","c"};
                //Arrays.asList()返回的是一指定数组支持的固定大小的列表,大小不可变,关键在这里的返回列表
                List<String> list = Arrays.asList(str);
                System.out.println(list);
                //list.add(1,"b"); 报错,不可以添加无素,因为大小固定
                list.set(1,"b");//通过,将一个元素换成另一个元素是可以的
        }
回复 使用道具 举报
549208564 发表于 2016-1-4 13:45
public static void main(String[] args) {

                String[] str ={"a","b","c"};

那数组转的集合和普通的集合不一样咯
回复 使用道具 举报
cj286 发表于 2016-1-4 19:16
那数组转的集合和普通的集合不一样咯

集合与数组都可以看作成一个容器,而集合是可以放入对象的,集合本身就是以数组的形式存储数据的,当Arrays.asList()方法运行时,就固定了集合的大小,相当于固定了数组的大小
  如:数组有3个长度,你在加入元素进就不可以,但是可以根据数组的角标进行赋值
回复 使用道具 举报
549208564 发表于 2016-1-4 19:23
集合与数组都可以看作成一个容器,而集合是可以放入对象的,集合本身就是以数组的形式存储数据的,当Arra ...

哦,明白了,谢谢
回复 使用道具 举报
就听别人这么说了一句,记下了,一直不知道为什么
回复 使用道具 举报
楼上的说的不是很对吧。集合并不是以数组形式存储的吧。还有就是数组中一样是可以存储对象的。asliist默认导的包不是集合所要用的包,具体我也不是很记得了,你可以换下包,或者转换一下就可以的。网上都搜得到的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马