集合框架之-List

一 、List(有序,可重复)

ArryList
应用描述:作为代码里最常见的List,它的优点就是查询快,因为大部分的代码应用是查询后的遍历分类、排序操作,增删改操作相对较少。
底层原理:ArryList底层是基于一个可变数组实现的,允许存储任何元素,包括null。此外相对于Vector是非线程安全。
继承和实现:继承了AbstractList这个抽象类,所以基础的增删改查都有了,实现了RandomAccess接口,所以可以实现随机访问,Cloneable接口可以进行深拷贝,Serializable可以进行序列化。再往上就是List和Collection。在这里插入图片描述
Vector
这玩意儿我是真没用过,可以理解和ArryList双胞胎,唯一区别在于几乎所有的方法加了一个Synchronized修饰,这也是它为什么线程安全,但它的效率是它属于濒危物种的根本原因。
在这里插入图片描述
LinkedList
应用描述:虽然没有ArryList的使用频率高,但是偶尔还是可以看到的。因为它的特点是增删改效率要比ArryList高,有序。
底层原理:它的底层是一个双向链表实现的,遍历时指针是有方向的,从头到尾,所以查询不如Arrylist,但是因为其具有位置指针,所以他插入快。
继承和实现:继承自AbstractSequentialList,(这个玩意儿没啥印象,但不懂就看源码,源码解决一切问题)可以看到AbstractSequentialList继承同样继承自AbstractList这个抽象类,那它的不同点在哪呢?对比可以看出它多了几个单独的get,remove,insert方法。实现了Deque这个接口(还是不懂,继续看),而Deque接口又实现了Queue,这回明白了这是队列,那Deque应该是双向队列了。
LinkedList继承实现关系
AbstractSequentialList类Deque
结尾彩蛋:这是我的第一条博客,从事Java开发一年多,普通二本,非专业,半路出家。大部分东西都是自己的理解,有不对的地方请前辈指出,也欢迎互相交流学习。浑浑噩噩一年多,想认真的学习一次,毕竟这辈子进大厂的机会可能就这一次了。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值