JAVA语言专题之集合
Vivian 2018-07-03 来源 : 阅读 593 评论 0

摘要:本文主要向大家介绍了JAVA语言专题之集合,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言专题之集合,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

        笔者是从事Android开发的,所以对java也是略有见解的,Android开发过程中经常会使用到一些集合如:ArrayList,HashSet,HashMap;这里我们来探讨一下android常常借助于java而经常使用的那些常见又经典的集合。

        以android开发的角度看java中最常使用的三个集合是ArrayList,HashSet,HashMap,所以此篇的讲述也是以此四个集合为中心进行技术分享和展开,若有不足,还望在下方评论区为笔者指出,以相互学习共同进步。

        要谈及这三个集合,那么先要谈一谈它们的先辈,即为它们缘何而来,往哪里去。关于Collection,Map集合大家都见过,它俩共同承担了所有集合的祖辈。此一对集合有何区别,java为何要撇开“一山偏要容二虎”的态势呢?此处可要说道说道了。Collection中存储了一组对象,而Map则用来存储键值对,一起构成了java的两种存储机制。Collection作为接口,包含着List和Set子接口。此外有些基本数据结构类的知识,大家了解些的好,比如Array字眼基本都是和“数组”有关;Hash呢则是和“散列”相关;Link为“链式”相关,方便插入操作;Tree为“树型排序”,方便查询时返回最接近匹配项的导航式方法。

        现在我们则让三个集合类闪亮登场,顺便认个亲。ArrayList实现的为List接口,HashSet实现的是Set接口,而HashMap呢?则最终实现的为Map接口。那好,追根溯源之后,我们就可以很简单的理清楚这三个集合的区别。

        1,ArrayList------首先是ArrayList,ArrayList底层采用数组实现,具有较高的查询速度。这要源于List接口具有维护元素的顺序,且元素可以重复的特性。该特性也使得ArrayList是最简单最常用的集合。

       2, HashSet------其次是HashSet,HashSet是为快速查找而设计的Set,因为Set接口不保证维护元素的顺序,且元素不能重复。所以嘞,存入HashSet的对象必须实现hashCode()和equals()。 

       3, HashMap-----之后是HashMap,通过看HashSet和HashMap的字母排序就可以得知,我们大抵可以得出其相同点和不同点。相同点都是不保证维护元素的顺序,且元素不能重复。而不同点呢,则是一个存储的是对象,另一个存储的则是键值对。毕竟以Hash开头可不是闹着玩的。

 

        好了,现在我们理清楚了,三者的区别。那么剩余的和它们以兄弟接壤的其他集合的功能也就呼之欲出了。仍然按照ArrayList,HashSet,HashMap的顺序对余下的集合进行比较是分析。

        1,ArrayList和LinkedList同实现于List接口。

                   刚才已经说过ArrayList底层采用数组实现,为顺序存储结构;LinkedList底层采用双向循环列表实现,为链式存储结构,因此进行插入和删除操作时具有较高的速度,我们还可以使用LinkedList来实现队列和栈。

        2,HashSet和LinkedHashSet,TreeSet二者的比较,同实现于Set。

                   LinkedHashSet,具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序),于是在使用迭代器遍历Set时,结果会按元素插入的次序显示,说通俗点儿就是给HashSet排个链式的序,方便了插入操作;TreeSet: 提供排序功能的Set,底层为树结构,这就说明它具备了针对给定查询目标返回最接近匹配项的导航方法。

        3,HashMap和TreeMap的比较。

                   关于此二者的比较,我们简单粗暴一点:HashMap无序,TreeMap有序,且是以数的结点层次结构进行排序的,这种二叉树式的排序的一大特点就是做查询时能针对给定的查询目标返回最接近匹配项的导航方法。

       

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @Vivian 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程