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

本帖最后由 自学小番薯 于 2015-3-3 12:38 编辑

很多数据一维数组或者多维数组就可以储存,为什么还需要另外造个集合这种容器来储存?
菜鸟刚看到集合,故有此幼稚疑惑?
还望大神来科普下~~~



看到很多人说,集合拥有增、删、改、查的功能,操作集合里的元素的功能更强大。
既然如此,为什么不直接淘汰数组呢?
集合既不基于数组,也不与数组有联系,拥有数组的所有功能,并且能完成更高级的需求。数组存在的意义在什么地方呢?
还望大神指点。







35 个回复

正序浏览
看了这么多 确实涨姿势了
回复 使用道具 举报
数组可以存储基本数据类型和引用数据类型,collection集合只能存储引用数据类型
回复 使用道具 举报
ArrayList 就是基于数组  ArrayList源代码就是用数组实现的。
回复 使用道具 举报
本帖最后由 白春秋 于 2015-3-5 21:42 编辑

数组和集合都是容器,但是说装的东西不同:数组既可以存储基本数据类型又可以存对象,但是必须是同一类型的,而且长度是固定的;集合只能存储对象,长度是可变的。因此集合和数组都有各自特有的功能,可以互相弥补对方的局限,不可替代
回复 使用道具 举报
ko889910 发表于 2015-3-4 22:11
楼主知道什么是数据结构吗 数据存放在不同的数据结构中对算法效率有相当大的影响 相同的数据放在不同的数据 ...

看来牵涉到越底层的东西,那些计算机基础就起作用了
以后一定要把计算机的专业课给补上
回复 使用道具 举报
楼主知道什么是数据结构吗 数据存放在不同的数据结构中对算法效率有相当大的影响 相同的数据放在不同的数据结构中 对他们做相同的处理 处理器运算耗费的时间可能相差几倍甚至几十倍
回复 使用道具 举报
自学小番薯 发表于 2015-3-4 19:23
涨姿势了   太感谢你的科普~~~

呵呵  数组很有用吧
回复 使用道具 举报
sofeel 发表于 2015-3-3 18:38
数组是定量的容器,
数组是容器的始祖。

涨姿势了   太感谢你的科普~~~
回复 使用道具 举报
数组和集合都是用来数据的,但是两者有区别:数组存放的是同一类型的数据(对象),而集合能存放不同类型的数据(对象);数组长度是固定的,集合的长度是可变的
回复 使用道具 举报
如果需要表示矩阵的话用二维数组还是比较方便吧?
回复 使用道具 举报
集合要比数组的功能强大,是个更大的容器。
回复 使用道具 举报
数组是定长的 集合不是 而且集合的方法更多 更方便一些
回复 使用道具 举报
自学小番薯 发表于 2015-3-3 12:31
既然集合这么强大,数组还留着有什么用呢?
难道数组拥有集合所没有的优点?比如高效,安全之类的?
...

数组是定量的容器,
数组是容器的始祖。

缓冲技术,实现了数组的动态创建。
因而,发展出了新的容器,StringBuffer,StringBuilder.
缓冲技术的容器很强大了,可以什么都存。当然包括对象。
那么,它能直接操作对象吗?不行。想要使用它其中的元素,只有转成字符串。因为这是他的使命,出现就是为了增强数组和字符串。

未完成的任务只能交给新的兄弟们,他们是集合,可以存储并操作对象。
数组完全淘汰了吗?
List用的是什么结构?数组结构。动态的数组而已。
集合新增加了数据结构,tree和hash.它们的底层用没用到数组,没瞧过源码,不敢妄断。

综上:
数组是容器的基石。


回复 使用道具 举报
我觉得可以肯定的是集合比数组的功能要强大,就算java某一天想舍弃数组,也很难做到了,编程语言为了向后兼容一定会牺牲很多东西的
回复 使用道具 举报
数组可以存放基本数据类型和对象,集合只能存对象。数组还支持索引
回复 使用道具 举报
fantacyleo 发表于 2015-3-3 13:15
我是学习国外大学的公开课时看到的,那是用C语言实现的。但思路肯定一样。你可以搜一下java怎么实现动态 ...

涨知识了,谢了啊
回复 使用道具 举报
因为不管在哪个编程语言中,数组是一种最基本的数据结构,很多数据结构都是从数组演变而来的。Java中也是一样,很多的功能都必须依靠数组来实现,因为它简单直观,存储方式最简单明了。
回复 使用道具 举报
zfgrinm 发表于 2015-3-3 12:54
那代码上是怎么实现的啊,哪里有具体的代码实现这功能呢,想学习学习

我是学习国外大学的公开课时看到的,那是用C语言实现的。但思路肯定一样。你可以搜一下java怎么实现动态数组。当然,这种动态数组不能像普通数组那样用下标操作元素了,实质上就是变成一个类似ArrayList的类,你要创建对象、调用方法来增删改查。
回复 使用道具 举报
自学小番薯 发表于 2015-3-3 12:31
既然集合这么强大,数组还留着有什么用呢?
难道数组拥有集合所没有的优点?比如高效,安全之类的?
...

杀鸡焉用牛刀
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马