黑马程序员技术交流社区

标题: ----一个小问题---- [打印本页]

作者: 吴波    时间: 2013-5-21 16:19
标题: ----一个小问题----
本帖最后由 吴波 于 2013-5-21 17:13 编辑

数组中能存放对象吗?
集合中能存放基本数据类型吗?
求详细解释,越详细越好。。。
作者: java.exe    时间: 2013-5-21 16:33
数组可以存储对象啊 确切的说数组中存储的是对象的引用
如:
class Person
{
}
Person p1=new Person();
Person p2=new Person();
Person[] persons=new Person(){p1,p2};
集合中是专门用来存引用数据类型的 不能存储基本数据类型,将基本数据类型装箱后就能存在集合中了
作者: 忧伤    时间: 2013-5-21 16:37
java语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。个人感觉数组中是不能存对象的(有一些特殊的除外)但我看了下http://blog.csdn.net/solidwang/article/details/4484130,感觉自己的理解又有点不对 集合应该是可以存放基本数据类型的,因为我现在还没遇到集合还不能存的基本数据类型(可能是我接触的面还太窄吧)个人感觉
作者: 画饼    时间: 2013-5-21 16:50
都可以,对象装进去的是引用,基本数据类型,会自动装箱
作者: Super_Class    时间: 2013-5-21 16:51
注意:

集合时不能存储基本数据类型的。

List<int> list1 = new ArrayList<int>(); //这种写法是错误的

List<Integer> list2 = new ArrayList<Integer>();//这样才可以
如果是这样的情况:
list2.add(1);这样是可以的。因为jdk1.5的新特性,直接将基本数据类型装箱了。变成对象了

另外一个容易误解的地方:
int []arr = {1,4,66,22};
list<int[]> list3 = new ArrayList<int[]>();//这个地方为什么可以这么写呢。
因为这个地方存储的是数组(数组是对象)。就可以很好的理解了






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