黑马程序员技术交流社区

标题: 搞不懂求指教 [打印本页]

作者: zhanganping    时间: 2016-2-17 21:30
标题: 搞不懂求指教
1. 关于将int数组使用系统提供的API转成集合后,不可以进行的操作是(     )
a) 增加集合中的元素
b) 迭代集合
c) 修改集合中的元素
d) 获取集合中元素的个数


作者: hekaikai    时间: 2016-2-17 21:37
多想给你解答,可是我还没有学到这块的知识点。   努力吧
作者: j6819236    时间: 2016-2-17 22:11
A不能增加,因为把数组看做一个整体转化成集合  ,其他几个都可以,注意使用引用数据类型数组
作者: zzh111    时间: 2016-2-17 22:45
j6819236 发表于 2016-2-17 22:11
A不能增加,因为把数组看做一个整体转化成集合  ,其他几个都可以,注意使用引用数据类型数组 ...

能解释一下为什么吗?
作者: 玉质彼端    时间: 2016-2-17 22:57
这个系统提供的API应该是Arrays.asList方法:
java.util.Arrays.asList(数组)产生的集合类型是java.util.Arrays.ArrayList(注意,并非我们常用的java.util.ArrayList类),你可以看一下这个ArrayList类源码,该类不提供增删元素的方法。

扩展:
刚才我试了一下
                int[] b = new int[]{1,2,3};
                System.out.println(java.util.Arrays.asList(b).size()); //result:1
                System.out.println(java.util.Arrays.asList(b));//result:[I@15db9742
结果发现int[]数组如果直接通过系统提供的API,只能得到一个仅含1个元素的List集合。
这个涉及到装箱拆箱的问题,使用java.util.Arrays.asList(new Integer[]{1,2,3})会得到我们想要的含3个元素的List集合。
作者: heimagirls    时间: 2016-2-18 17:38
A不能增加,将数组转换为集合,需要遍历数组,然后一个个加到集合中,要用到数组的引用。所以你要先申请这个数组,申请后数组的长度是固定的,你不能更改,除非重新申请新的数组。
作者: WestdoorEmperor    时间: 2016-2-18 18:39
答案应该是A,数组中的元素是不固定的,转换成集合后就不可以对其进行增删
作者: 黑白涩    时间: 2016-2-19 07:53
增删操作不行,其他操作可以,应该是空间大小指定了,不能动了
作者: 李岳珉    时间: 2016-2-19 08:09
a) 增加集合中的元素
作者: 安卓必备    时间: 2016-2-19 21:18
数组转成集合后,集合的长度不能改变.故A




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