双端队列Deque, java中的双端队列,双端队列基本概念
日期: 2020-12-14 分类: 跨站数据测试 454次阅读
双端队列Deque, java中的双端队列,双端队列基本概念
- 双向队列是一个可以从两端进行添加和移除的队列。deque的全称是“double ended queue”
Deque双向队列的实现类可以是一个有容量限制的双端队列,也可以是一个有容量限制的。
-
Deque接口定义了从两端访问队列的方法,提供了插入,删除,检索两组方法,一组是操作失败抛出异常,一组是操作失败返回布尔值或者null. 插入操作返回布尔值或者null只会出现在有固定容量的双端队列中,在deque的大多数实现中,插入操作不会失败.
如果是一个有容量的队列,建议使用add系列方法,当容量不足是抛出异常
-
双端队列常用的方法
失败抛出异常 | 失败返回false | 失败抛出异常 | 失败返回false | |
---|---|---|---|---|
addFirst | offerFirst | addLast | offerLast | add |
removeFirst | pollFirst | removeLast | pollLast | remove |
getFirst | peekFirst | getLast | peekLast | examine |
-
Deque接口继承了Queue接口,他可以当成普通的队列实现先进先出FiFo操作,元素从双端队列尾部添加,从双端队列头部出队。继承自Queue的add方法,相当于Deque的addLast操作,offer相当于offerLast操作,remove相当于removeFirst,poll相当于pollFirst,queue中的element检索操作相当于deque的getFirst方法。 peek想当于peekFirst.
-
Deque也可以被使用为last in first out 后进先出的栈。 使用addFirst, removeFist操作实现栈的后进先出功能,从队列头部进入,从队列头部出 push -> addFirst poll-> removeFist, peek -> getFirst
-
Deque提供了两组迭代器,可以从头开始检索,也可以从尾部开始检索
Iterator<E> iterator(); //可以从头开始检索 Iterator<E> descendingIterator(); //反过来 从队尾开始检索元素
Deque的子类实现图:
欢迎各位大佬们的点赞评。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:java java
精华推荐