陕西企业营销型网站,整合营销公司,wordpress 路由器,网络拓扑图目录
一. 前言
二. Queue 接口
三. Deque 接口 一. 前言 Java里有一个叫做Stack的类#xff0c;却没有叫做Queue的类#xff08;它是个接口名字#xff09;。当需要使用栈时#xff0c;Java已不推荐使用Stack#xff0c;而是推荐使用更高效的ArrayDeque#xff1b;既然…目录
一. 前言
二. Queue 接口
三. Deque 接口 一. 前言 Java里有一个叫做Stack的类却没有叫做Queue的类它是个接口名字。当需要使用栈时Java已不推荐使用Stack而是推荐使用更高效的ArrayDeque既然Queue只是一个接口当需要使用队列时也就首选ArrayDeque了次选是LinkedList。
二. Queue 接口 Queue接口继承自Collection接口除了最基本的Collection的方法之外它还支持额外的insertion, extraction和inspection操作。这里有两组格式共6个方法一组是抛出异常的实现另外一组是返回值的实现没有则返回null。
三. Deque 接口 Deque是“double ended queue”表示双向的队列英文读作deck。Deque 继承自 Queue接口除了支持Queue的方法之外还支持insert, remove和examine操作由于Deque是双向的所以可以对队列的头和尾都进行操作它同时也支持两组格式一组是抛出异常的实现另外一组是返回值的实现没有则返回null。共12个方法如下
当把Deque当做FIFO的Queue来使用时元素是从Deque的尾部添加从头部进行删除的 所以Deque的部分方法是和Queue是等同的。 具体如下
Queue MethodEquivalent Deque Methodadd(e)addLast(e)offer(e)offerLast(e)remove()removeFirst()poll()pollFirst()element()getFirst()peek()peekFirst()
Deque的含义是“double ended queue”即双端队列它既可以当作栈使用也可以当作队列使用。下表列出了Deque与Queue相对应的接口
Queue MethodEquivalent Deque Method说明add(e)addLast(e)向队尾插入元素失败则抛出异常offer(e)offerLast(e)向队尾插入元素失败则返回falseremove()removeFirst()获取并删除队首元素失败则抛出异常poll()pollFirst()获取并删除队首元素失败则返回nullelement()getFirst()获取但不删除队首元素失败则抛出异常peek()peekFirst()获取但不删除队首元素失败则返回null
下表列出了Deque与Stack对应的接口
Stack MethodEquivalent Deque Method说明push(e)addFirst(e)向栈顶插入元素失败则抛出异常无offerFirst(e)向栈顶插入元素失败则返回falsepop()removeFirst()获取并删除栈顶元素失败则抛出异常无pollFirst()获取并删除栈顶元素失败则返回nullpeek()getFirst()获取但不删除栈顶元素失败则抛出异常无peekFirst()获取但不删除栈顶元素失败则返回null
上面两个表共定义了Deque的12个接口。添加删除取值都有两套接口它们功能相同区别是对失败情况的处理不同。一套接口遇到失败就会抛出异常另一套遇到失败会返回特殊值false或null。除非某种实现对容量有限制大多数情况下添加操作是不会失败的。虽然Deque的接口有12个之多但无非就是对容器的两端进行操作或添加或删除或查看。明白了这一点讲解起来就会非常简单。