Java中的静态数组与动态数组
郑州学满分 > 学习网 > 电脑IT设计 > Java > Java中的静态数组与动态数组

郑州AAA教育-最新动态NEWS

Java中的静态数组与动态数组

文章导读:Java中的静态数组与动态数组

我们学习的数组都是静态数组,其实在很多的时候,静态数组根本不能满足我们编程的实际需要,比方说我需要在程序运行过程中动态的向数组中添加数据,这时我们的静态数组大小是固定的,显然就不能添加数据...

Java中的静态数组与动态数组

资料整理:郑州AAA教育发布时间:2018-12-21已帮助:47人


Java中的静态数组与动态数组



  我们学习的数组都是静态数组,其实在很多的时候,静态数组根本不能满足我们编程的实际需要,比方说我需要在程序运行过程中动态的向数组中添加数据,这时我们的静态数组大小是固定的,显然就不能添加数据,要动态添加数据必须要用到动态数组,动态数组中的各个元素类型也是一致的,不过这种类型已经是用一个非常大的类型来揽括—Object类型。

  Object类是JAVA.LANG包中的顶层超类。所有的类型都可以与Object类型兼容,所以我们可以将任何Object类型添加至属于Object类型的数组中,能添加Object类型的的集合有ArrayList、Vector及LinkedList,它们对数据的存放形式仿造于数组,属于集合类,下面是他们的特点:

  特点一、容量扩充性

  从内部实现机制来讲ArrayList和Vector都是使用Objec的数组形式来存储的。当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。所以如果你要在集合中保存大量的数据那么使用Vector有一些优势,因为你可以通过设置集合的初始化大小来避免不必要的资源开销。

 特点二、同步性

  ArrayList,LinkedList是不同步的,而Vestor是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。

  特点三、数据操作效率

  ArrayList和Vector中,从指定的位置(用index)检索一个对象,或在集合的末尾插入、删除一个对象的时间是一样的,可表示为O(1)。但是,如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元素的索引位置。为什么会这样呢?以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行(n-i)个对象的位移操作。

  LinkedList中,在插入、删除集合中任何位置的元素所花费的时间都是一样的—O(1),但它在索引一个元素的时候比较慢,为O(i),其中i是索引的位置。

  所以,如果只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是对其它指定位置的插入、删除操作,最好选择LinkedList

  ArrayList和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快。


以上就是【AAA教育】小编努力整理出的内容,希望对大家的学习有所帮助哦。更多资讯信息请定期关注我们...

更多 最新课程学员问答学习资料优惠活动学校地址 等,请点击郑州AAA教育 ,咨询电话: 400-882-1933 ,QQ咨询: 郑州AAA教育为您服务

您也可以留下您的联系电话,课程老师会时间给您回电解答:预约咨询

郑州AAA教育—学员评价更多>>我要评价

懂**学校很注重教学质量,这样学生学起来很有激情,老师教课很认真,也很有热情,给力,加油!
学员电话:1891876**** | 报名课程: 郑州大数据开发培训 | 网点: 金水校区 | 时间: 2019-03-24 16:17:14
李**我是同学介绍来的学习全能UIUE交互设计的,一开始觉得这个学校一般般,但是经过一段时间的学习,发现这里的老师讲课很有吸引力,能调动大家学习的积极性,很喜欢这里的学习生活,现在感觉自己学到的技术也能达到找工作的要求了。
学员电话:1891795**** | 报名课程: 郑州软件工程师 | 网点: 金水校区 | 时间: 2019-03-23 20:44:14
程**找了很多学校,还是选择郑州AAA教育,孩子自己做的决定,我们家长就是支持,真的是认真负责的老师,非常完善的流程体制,让我们做家长的很放心孩子在这边学习,生活,现在孩子的学习期马上就结束了,也已经找到了自己喜欢的工作。
学员电话:1791236**** | 报名课程: 4G互联网课程 | 网点: 金水校区 | 时间: 2019-03-25 15:54:14
孙**正在学习中,我也要像师兄师姐们一样做出牛叉的作品~~这里师生的作品都棒极了!我也越来越有信心了,加油ing。
学员电话:1878983**** | 报名课程: 4G互联网课程 | 网点: 金水校区 | 时间: 2019-03-22 02:44:14
鱼**AAA教育不错呀。我就是从这里毕业的。UI班的,毕业后也有帮就业,薪资也不错。
学员电话:1351636**** | 报名课程: 4G互联网课程 | 网点: 金水校区 | 时间: 2019-03-21 09:17:14
任**到了AAA这里,以后之前纠结很长时间的烦恼都没有了。这边新认识的朋友和老师都对我不错,一切都是那么的和谐,有了畚斗的激情。
学员电话:1351277**** | 报名课程: 郑州java培训 | 网点: 金水校区 | 时间: 2019-03-26 18:09:14
为**讲课的导师都是有好多年的项目实战经验,超级不错,之前上门看过,学习气氛很好,就业也很有保障,非常不错。
学员电话:1351238**** | 报名课程: 郑州java培训 | 网点: 金水校区 | 时间: 2019-03-25 11:45:14
懂**郑州校区老师水平高,负责任,学习氛围很好,班主任老师潘老师对学员非常的负责,零基础学习学到了很多东西真的很棒
学员电话:1891876**** | 报名课程: 郑州大数据开发培训 | 网点: 金水校区 | 时间: 2019-03-23 13:56:14
陈**我个人认为在AAA教育的学习和生活都还不错,最起码学校没有夸大其词,老师都是有真本事的
学员电话:1861627**** | 报名课程: 郑州软件工程师 | 网点: 金水校区 | 时间: 2019-03-25 02:22:14
余**新乡职业技术学院是当地比较不错的高职类院校,学校占地面积比较大,硬件设施比较齐全的,尤其是学校专注于动漫类专业技能培训,软件设施还是很棒的。学校师资力量还可以,每年输出大量技术应用型人才,总体感觉还是比较不错的职业类院校。
学员电话:1851236**** | 报名课程: 郑州大数据开发培训 | 网点: 金水校区 | 时间: 2019-03-21 01:05:14

郑州AAA教育-最新动态 NEWS更多>>

学校首页| 课程导航| 最新开班| 学校简介| 名师推荐| 校区地址| 最新优惠| 学员问答| 学员评价| 最新动态| 学校相册

郑州AAA教育 郑州AAA教育怎么样|AAA教育培训费用|AAA教育好不好

郑州AAA教育 团购预约热线: 400-882-1933

扫描手机访问