蔡不菜和他的uU们

  • 首页
  • 新鲜出炉
  • 我的记录
  • 我的动态
  • 我和uU
  • 好用分享
  • 关于与留言
志合者,不以山海为远;道乖者,不以咫尺为近
  1. 首页
  2. 学习,学习
  3. 正文

JavaSE - Deque

2022年7月27日 362人阅读 0人点赞 0条评论

      在 Java 中当我们需要使用队列和栈这两种数据结构时,我们通常并不使用Queue,Stack,而是选择 Deque 进行实现这两种数据结构。在使用Deque时,重要的一点就是明确数据操作, 是 先进后出 FILO(即栈,只在一端进行操作,不能误用API),还是 先进先出 FIFO (即队列,在两端操作,但要注意API组合的一致性)。

Deque

java.util.Deque 接口

其父接口有

Collection;
Iterable;
Queue;

实现类有

ArrayDeque;

LinkedList;

ConcurrentLinkedDeque;

LinkedBolckingDeque;

Deque API

Deque提供了两套API

一套是出错抛出异常

// head
addFirst();
removeFrist();
getFirst();

// tail
addLast();
removeLast();
getLast();

一套是出错返回特殊值

// head
offerFirst();
pollFirst();
peekFirst();

// tail
offerLast();
pollLast();
peekLast();

Deque 支持在两端插入和去除元素的线性集合,因此可以实现栈、也可以实现队列

Deque 实现 queue

由于Deque也继承了Queue接口

对于实现Queue时,有两套等价的API

一套是Queue自己的,Deque继承过来的

add(e);
offer(e);
remove();
poll();
element(); // 检索
peek();

一个是Deque的【语意明确,推荐使用】

addLast();
offerLast();
removeFirst();
pollFirst();
getFirst();
peekFirst();

Deque 实现 stack

Deque也可以实现stack,后进先出

Stack中的操作对应的在Deque中的实现

push();     ----> addFirst();
pop();      ----> removeFirst();
peek();     ----> peekFirst();

标签: JavaSE 算法与数据结构;
最后更新:2022年7月27日

Csy

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复
文章目录
  • Deque
  • Deque API
  • Deque 实现 queue
  • Deque 实现 stack

COPYRIGHT © 2021 caibucai.top. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

豫ICP备2021018055号