黑马程序员技术交流社区

标题: 数组和集合的问题 [打印本页]

作者: 冯建鹏    时间: 2012-3-15 11:38
标题: 数组和集合的问题
本帖最后由 冯建鹏 于 2012-3-15 11:45 编辑

数组和集合类同是容器,有何不同?

数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。

集合类的特点

集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。


当集合前面加上泛型的时候集合不就也就 只能加入固定类型对象了吗?不能加入不同类型了吧
作者: 张润政    时间: 2012-3-15 14:22
是的。当集合加上泛型之后就只能存入泛型类的对象。这是一种安全机制。
当集合不加泛型的时候i,它可以存入不同种类型的对象,对于用户来讲,这是一种非常不安全的操作,因为它能接收各种类型,有可能用户会存入错误的数据进去。所以我们使用了泛型来强制这种错误在编译时期就会报错。
这是利用了数组的这种类型确定性的有点。
这个问题应该从安全性的方面去考虑,你应该就会明白为什么要在集合上加上了泛型。

作者: 郑涛    时间: 2012-3-15 23:15
泛型确实是为了实现编译安全的一种机制。但是加了泛型的集合存储的固定类型对象也是对象,并不违背集合类容器容纳对象的定义。而数组存储的是基本数据类型。基本数据类型与对象的对应关系是byte--Byte  short--Short  int--Integer long--Long float--Float double--Double char--Character boolean--Boolean
作者: a504079589    时间: 2012-3-15 23:29
由于集合可以存储不同类型的数据, 所以取元素时有可能会导致类型转换错误, 泛型为JDK1.5增加的新特性, 为了减少操作集合时出错的几率, 集合一旦声明了泛型,便只能存储同一类型的对象了;
使用泛型的好处:
                      1: 提高了程序的安全性;
                      2: 将运行期遇到的问题转移到了编译期;
                      3: 获取元素的时候省去了类型转换的麻烦;
                      4: 泛型类的出现优化了程序设计;
                    




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