您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页java中的Stack、Queue、Deque用法

java中的Stack、Queue、Deque用法

来源:华佗小知识
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使⽤

除了继承 Collection 接⼝的⼀些⽅法,Queue 还添加了额外的添加、删除、查询操作。

add:增加⼀个元索,如果队列已满,则抛出⼀个IIIegaISlabEepeplian异常offer:添加⼀个元素并返回true,如果队列已满,则返回false

remove:移除并返回队列头部的元素,如果队列为空,则抛出⼀个NoSuchElementException异常poll:移除并返问队列头部的元素,如果队列为空,则返回null

element:返回队列头部的元素,如果队列为空,则抛出⼀个NoSuchElementException异常peek:返回队列头部的元素,如果队列为空,则返回nullisEmpty:判断队列是否为空

3.Deque(双端队列,头部尾部添加、头部尾部删除,Java官⽅推荐使⽤Deque替代Stack)

3.1 Deque原理

Deque是⼀个双端队列接⼝,继承⾃Queue接⼝,Deque的实现类是LinkedList、ArrayDeque、LinkedBlockingDeque,其中LinkedList是最常⽤的。

⼤多数 Deque 实现对于它们能够包含的元素数没有固定,但此接⼝既⽀持有容量的双端队列,也⽀持没有固定⼤⼩的双端队列。

3.2 Deque使⽤

此接⼝定义在双端队列两端访问元素的⽅法。提供插⼊、移除和检查元素的⽅法。每种⽅法都存在两种形式:⼀种形式在操作失败时抛出异常,另⼀种形式返回⼀个特殊值(null 或 false,具体取决于操作)。插⼊操作的后⼀种形式是专为使⽤有容量的 Deque 实现设计的;在⼤多数实现中,插⼊操作不能失败。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务