黑马程序员技术交流社区

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

作者: 周发建    时间: 2013-2-1 13:39
标题: 数组和集合
本帖最后由 张向辉 于 2013-2-1 19:50 编辑

数组也可以存放对象,集合也可以存放对象,那么这两个有什么区别呢
作者: 周发建    时间: 2013-2-1 13:40
各位大侠能否给我些学习的意见
作者: 周发建    时间: 2013-2-1 13:41
我在学习中呢,。总是学一点,忘一点
作者: 周发建    时间: 2013-2-1 13:41
总是没有学习的方法,和学习的效率
作者: 周发建    时间: 2013-2-1 13:42
我想,是不是应该从事计算机行业
作者: 周发建    时间: 2013-2-1 13:43
但是,我听别人说,兴趣是最好的老师,我对电脑,特别是软件特别感兴趣,
作者: 周发建    时间: 2013-2-1 13:43
<a herf=-"www.itcast.cn">传智播客</a>
作者: 周发建    时间: 2013-2-1 13:44
对不起,我是想把传智播客的网址发在上面,但不小心,搞错了
作者: 逍林游    时间: 2013-2-1 13:52
集合存放复杂对象操作更灵活!
数组存放对象仅仅存放对象的引用···
作者: 罗正荣    时间: 2013-2-1 14:14
{:soso_e114:}楼主自己在刷帖啊
作者: 陈科宇    时间: 2013-2-1 14:20
     呵呵,数组和集合是有区别的。数组会在初始化时确定分配空间大小或者说元素的个数,而且分配的是连续的存储空间。这也是为什么我们没有听说过删除数组里的某个元素,我们只能改变元素的值。当然,我们定义的数组名是一个引用对象,相当于一个指针,我们可以通过改变该数组名指向其他同类型数组来改变数组元素的个数。但请记住实质,数组对象在堆内存中生成后是不可以移动或删除其中的元素的。而集合采用链式存储,如果你有学习过数据结构,就知道,链式存储是通过指针来控制元素的前后关系,并不分配连续的存储空间。这种方式对删除等操作非常有利,如果删除,只需要去掉该元素与其前驱和后继的指引关系即可。集合正是采用这种形式,所以我们可以很方便地增添和删除集合里的元素。
      因为没有贴出代码,希望没有使各位糊涂,如有需要,可以做进一步的交流。本人QQ:1612428643。

作者: 杨芳    时间: 2013-2-1 14:29
数组中只能存放同种类型的数据,集合的范围包括很广,不同类型的集合,可以存放不同类型的数据,数组也是集合的一种。可以看基础视频集合篇,有详细介绍。
作者: 王昕    时间: 2013-2-1 14:50
本帖最后由 王昕 于 2013-2-1 14:57 编辑

数组的[]加数组下标的语法是数组特有的,数组的存储空间是连续的,分配空间时是整个数组同时分配的。
数组就像一个架子,架子的格子数和每格的大小都固定了,你没法只改变架子上的某一格的大小,也没法去掉一个格子,只能改变格子里放的东西,格子里放的是主数据类型的变量或者对象的引用,放的不是对象本身。
一维数组就是一个顺序存储结构的线性表。
作者: 黑马斯巴达    时间: 2013-2-1 15:12
楼主自己先学学试一试吧或许会产生兴趣。。至于学习方法。。一步一步扎实的掌握知识点。慢慢地就会记住啦,一开始都会忘的。。
作者: 李洪因    时间: 2013-2-1 16:48

数组与其它容器类的区别体现在三个方面:效率、类型识别和可以持有primitives
数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素。但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的。还有一点,JAVA里面的数组是会做边界检查的,所以当你越界访问时,会抛出RuntimeException
JAVA里面提供的其他容器还包括List,Set和Map。他们处理对象的时候就好像这些这些对象都没有自己的类型一样,容器将它所含的元素都看成是JAVA中所有类的根类Object类型的,这样我们只需创建一种容器,就能把所有的类型的对象全部放进去。但是当取出的时候,那就需要我们自己进行类型转换了,至于效率,数组无疑是要高于其他容器类的,因为有些容器类的实现就是基于数组的,比如ArrayList。不论从类型检查还是效率的角度来考虑,我们首选数组来作为容器都是没错的,但是数组的缺点就是功能太弱了,所以才会有容器类的出现。




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