A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周一川 中级黑马   /  2013-3-22 18:38  /  2194 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组和集合类的区别 集合也是容器啊, 为什么不数组

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-22 23:02

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

10 个回复

倒序浏览
额,这个问题没有研究过,个人感觉数组是个基本的东西,就像基本数据类型,集合是个高级点的东西,就像类对象,集合被封装了好多 方法,很多功能已经实现,比较利于使用吧。自己目前就考虑到这些了。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
1、数组长度固定,而集合长度是动态的
2、数组元素访问速度慢,集合元素访问速度相对快
回复 使用道具 举报
数组是固定长度的,一旦定下就不可更改了 ,而集合可以改变,这只是基本的
集合的存储有面向接口编程 集合用起来更加广泛
集合中只能存储引用类型 而数组可以存储基本数据类型
集合中hashset和hashmap还可以进行排序
总之,集合用途很广泛就是了

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
1.数组的长度是固定的,不利于扩展。集合是动态的,可以动态增长。
2. 数组中的存储形式比较固定,遍历快,儿插入慢。 集合采用面向接口编程,可以有不同你的实现。 比如有 ArrayList 底层以数组形式存储。LinkedList 底层以链表存储。遍历
慢,而插入快。可以更好的满足需求。

3,集合,提供了排序等更强大的功能,是数组不具备的。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
面向对象语言对事物的体现都是以对象的形式,所以为了方便可以对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。
数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。

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

建立一个体系,那么顶层就是这个体系的共性内容,不断向上抽取的内容有可能是抽象的,是不可能创建对象的,所以可以寻找子类对象的方法进行使用。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
1,数组和集合都是容器,这不错,但是数组既可以存放基本数据类型的数据,也可以存放引用数据类型的数据,但是集合只能存放引用数据类型的数据。数组一旦初始化,长度就固定了,不能改变,而集合没有这种限制。
2,集合中根据操作元素的底层数据结构的不同,有很多子类,每个子类针对特定的场合使用,并且每个子类都有很多方法进行操作,但数组就没有。例如:数组的遍历是for循环,而集合既可以是加强的for循环,也可以是迭代器;集合可以添加元素,数组初始了就不行等等

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
楼主,你好,
其实 组数是数据结构的一种,
而集合中有很多的子类,每种子类都是一种数据结构,
例如:Set和List及Map接口的所有子类都代表的一种数据结构,这是底层的东西,也是我们选择时要考虑的东西!
建议你看看  严蔚敏老师的 数据结构 就明白了!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
首先,数组的大小一经定义就已经固定了,不能改变大小,而且,大部分时候数组在内存中是一块连续的存储区域。所以说,在做添加修改的时候比较麻烦,但集合就不同了,首先集合不一定是在内存中是连续区域。其次,大小也可以改变,所以说在操作的时候就要方便的多,不信你在a[] = {0, 1, 2...8,9}这个数组中插入一个15试试,看难度大不大,如果数组大小上万了你要看看难度怎么样。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
数组和集合都是容器。都是为对大批数据对象存储以及操作的方便。
对象是对事物所涉及数据的封装,用来封装具体的数据。
而要对多个对象存储 操作 时就需要用到集合了。虽然数组也能存储对象,但数组的长度是固定的,而且类类型数组只能存储同一类或者同一类的子类对象。集合的长度是可以改变的,而且可以存储不同类型的对象 。
集合只能用来存对象。不能存储基本数据。数组可以。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
一、数组声明了它容纳的元素的类型,而集合不声明。
二、数组是静态的,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。
三、集合只能容纳对象,而集合即可容纳对象还能容纳基本数据类型
四、数组是一种可读/可写数据结构,没有办法创建一个只读数组。然而可以使用集合中提供的只读方式来实现,该方法将返回一个集合的只读版本。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马