看到java的各种实现类List、Set、Queue烦了!理一理舒服了

最近在刷链表题目遇到的java版本常用的数据结构整理了一下

作者变优秀的小白

Github关注YX-XiaoBai

爱好Americano More Ice !

QQ学习交流群(new): 811792998

先上图解,各种实现类

在这里插入图片描述

List概括

  1. List 是一个接口,它继承于Collection的接口。它代表着有序的队列。

  2. AbstractList 是一个抽象类,它继承于AbstractCollection。AbstractList实现List接口中除size()、get(int location)之外的函数。

  3. AbstractSequentialList 是一个抽象类,它继承于AbstractList。AbstractSequentialList 实现了“链表中,根据index索引值操作链表的全部函数”。

  4. ArrayList, LinkedList, Vector, Stack是List的4个实现类。
    ArrayList 是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。
    LinkedList 是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率低。
    Vector 是矢量队列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。
    Stack 是栈,它继承于Vector。它的特性是:先进后出(FILO, First In Last Out)。

LinkedList

  • LinkedList 继承了 AbstractSequentialList 类。

  • LinkedList 实现了 Queue 接口,可作为队列使用。

  • LinkedList 实现了 List 接口,可进行列表的相关操作。

  • LinkedList 实现了 Deque 接口,可作为队列使用。

  • LinkedList 实现了 Cloneable 接口,可实现克隆。

  • LinkedList 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。

Set、HashSet、TreeSet区别

  • Set: 一个通用的组值集合
  • HashSet: 一个无序的元素集合,HashSetSet的一个实现
  • TreeSet: 一个有序的元素集合,TreeSetSet的一个实现

通常上HashSetTreeSet会快很多。

  • TreeSet通常用于实现一个红黑树
  • HashSet通常配合Object.hashCode创建一个索引数组

Queue与Deque区别

均是: FIFO

  • Queue是单端队列
  • Deque是双端队列,可以在首尾插入或删除元素

总结: 而由于双端队列的定义,Deque可以作为栈或者队列使用,而Queue只能作为队列或者依赖于子类的实现作为堆使用。

结束语:如果遇到什么疑问或者建议的,可直接留言评论!作者看到会马上一一回复!
如果觉得小白此文章不错或对你有所帮助,期待你的一键三连💫!❤️ni!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值