java中的Stack、Queue、Deque⽤法1.Stack(LIFO,头部添加、头部删除、后进先出)1.1 Stack原理
栈是Vector的⼀个⼦类,它实现了⼀个标准的后进先出的栈。
Vector 是 AbstractList ⼦类
Vector 实现了 List 接⼝
ArrayList 是 AbstractList ⼦类
ArrayList 和 Vector 关系总算清楚了,他们是哥们关系,并且都继承⾃ AbstractList
从上⾯所有的分析,我们知道了Stack 本质也是⼀个 List。其具备 List 所有⽅法。
1.2 Stack的使⽤
堆栈只定义了默认构造函数,⽤来创建⼀个空栈。
堆栈除了包括由Vector定义的所有⽅法,也定义了⾃⼰的⼀些⽅法。
初始化:Stack stack=new Stack();
2.Queue(FIFO,尾部添加、头部删除、先进先出)2.1 Queue原理
Java集合中的Queue继承⾃Collection接⼝,Deque,LinkedList,PriorityQueue,BlockingQueue等类都实现了它。Queue ⽤来存放等待处理元素的集合,这种场景⼀般⽤于缓冲、并发访问。
2.1 Queue使⽤
java arraylist用法除了继承 Collection 接⼝的⼀些⽅法,Queue 还添加了额外的添加、删除、查询操作。
add:增加⼀个元索,如果队列已满,则抛出⼀个IIIegaISlabEepeplian异常
offer:添加⼀个元素并返回true,如果队列已满,则返回false
remove:移除并返回队列头部的元素,如果队列为空,则抛出⼀个NoSuchElementException异常
poll:移除并返问队列头部的元素,如果队列为空,则返回null
element:返回队列头部的元素,如果队列为空,则抛出⼀个NoSuchElementException异常
peek:返回队列头部的元素,如果队列为空,则返回null
isEmpty:判断队列是否为空
3.Deque(双端队列,头部尾部添加、头部尾部删除,Java官⽅推荐使⽤Deque替代Stack)
3.1 Deque原理
Deque是⼀个双端队列接⼝,继承⾃Queue接⼝,Deque的实现类是LinkedList、ArrayDeque、LinkedBlockingDeque,其中LinkedList是最常⽤的。
⼤多数 Deque 实现对于它们能够包含的元素数没有固定限制,但此接⼝既⽀持有容量限制的双端队列,也⽀持没有固定⼤⼩限制的双端队列。
3.2 Deque使⽤
此接⼝定义在双端队列两端访问元素的⽅法。提供插⼊、移除和检查元素的⽅法。每种⽅法都存在两种形式:⼀种形式在操作失败时抛出异常,另⼀种形式返回⼀个特殊值(null 或 false,具体取决于操作)。插⼊操作的后⼀种形式是专为使⽤有容量限制的 Deque 实现设计的;在⼤多数实现中,插⼊操作不能失败。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论