黑马程序员技术交流社区

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

作者: 张志阳    时间: 2012-4-1 10:11
标题: 数组转换集合问题
毕老师视频中,数组转换集合讲到:
Integer[] nums={2,3,4}
List<Integer>li=Arrays.asList(nums);
打印结果为[2,3,4]
而int[] nums={2,3,4}
List<int[] >li=Arrays.asList(nums);
打印结果为[[I@de6ced]
请高手帮忙理解:如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转换成集合中的元素。
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。
作者: yangshang1    时间: 2012-4-1 11:00
就是2,3,4都变成了Integer对象
而基本数据类型数组则变成集合中的元素
作者: izwj    时间: 2012-4-1 13:22
可以这样理解:
int类型的数组转换成集合时,整个数组被打包成集合一个元素;
Integer类型的数组转换成集合时,因为数组元素被装箱而成为对象,所以将每一个数组元素作为单独的集合元素;
作者: 张志阳    时间: 2012-4-1 15:51
izwj 发表于 2012-4-1 13:22
可以这样理解:
int类型的数组转换成集合时,整个数组被打包成集合一个元素;
Integer类型的数组转换成集合 ...

这个可以,谢啦啊
作者: 黑马老兵    时间: 2012-4-1 16:01
这是看到哪儿了???
作者: 邓飞飞    时间: 2012-4-2 07:00
Integer[] nums={2,3,4}
List<Integer>li=Arrays.asList(nums);
打印结果为[2,3,4]
而int[] nums={2,3,4}//在Interge类型的数组中的每一个元素都是整形的数据对象,这些元素都被自动装箱了,以对象的形式在集合中存在。
List<int[] >li=Arrays.asList(nums);
打印结果为[[I@de6ced]//int 类型的数组被看做一个独立对象存进集合,打印出来的就是这个对象的地址。




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