首页 > 编程语言 > 详细

Java集合篇(一)

时间:2019-07-06 12:49:44      阅读:97      评论:0      收藏:0      [点我收藏+]

参考博客:https://www.cnblogs.com/ysocean/p/6555373.html

 

集合类和数组不同,数组元素可以为基本数据类型值/对象引用,集合元素只能为对象引用。

Java中的集合有两大类,分别是:Connection、Map。

 

Collection类的集合可以理解为主要存放的是单个对象,而Map类的集合主要存储的是key-value类型的对象。这两大类即可理所当然的对应着?两个接口,分别是Collection接口Map接口,下面这幅图列出了这两个接口的继承树: 

技术分享图片

 

先介绍List的,Set和Map以后再介绍:

技术分享图片

LinkedList:从上图可以看出,不但继承了List接口,还继承了Deque接口(后面会介绍)。LinkedList是一个基于链表的数据结构,每个节点都保存了上一个和下一个节点的指针。LinkedList对于随机访问效率是比较低的,因为它需要从头开始索引,所以其时间复杂度为O(i)。但是对于元素的增删,LinkedList效率高,因为只需要修改前后指针即可,其时间复杂度为O(1)

技术分享图片

Vector:从Vector和ArrayList源码截图可以看出,它们继承的接口完全一致。所以,Vector可以看做是一个线程安全的ArrayList,它内部也是基于数组实现的,不过几乎所有的集合操作都加了synchronized关键字。

 技术分享图片

Stack:上面是Stack类源码截图,我们看到Stack类其实继承自Vector,Stack只是在Vector的基础上添加了几个方法以提供栈(Last In First Out LIFO)的特性。Stack的特点是添加时新元素会被添加到顶部,移除时顶部的元素最先被移除。这种数据结构主要用作一些特殊数据加工流程,如语言编译、XML解析等。

技术分享图片

 

Java集合篇(一)

原文:https://www.cnblogs.com/wzdnwyyu/p/11142062.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!