黑马程序员技术交流社区

标题: 数组转集合 [打印本页]

作者: cj286    时间: 2016-1-2 23:31
标题: 数组转集合
String[] str = {"a","b","c"};               
List<String> list = Arrays.asList(str);
list.add("d");
这时或抱一个java.lang.UnsupportedOperationException异常,数组都转为集合了,集合可以随便添加元数,为什么就是转了之后就不可以在添加了?原理是什么?
作者: 549208564    时间: 2016-1-4 13:45
       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");//通过,将一个元素换成另一个元素是可以的
        }
作者: cj286    时间: 2016-1-4 19:16
549208564 发表于 2016-1-4 13:45
public static void main(String[] args) {

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

那数组转的集合和普通的集合不一样咯
作者: 549208564    时间: 2016-1-4 19:23
cj286 发表于 2016-1-4 19:16
那数组转的集合和普通的集合不一样咯

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

哦,明白了,谢谢
作者: 云鱼    时间: 2016-1-4 21:38
就听别人这么说了一句,记下了,一直不知道为什么
作者: meihua    时间: 2016-1-4 22:00
楼上的说的不是很对吧。集合并不是以数组形式存储的吧。还有就是数组中一样是可以存储对象的。asliist默认导的包不是集合所要用的包,具体我也不是很记得了,你可以换下包,或者转换一下就可以的。网上都搜得到的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2