Dueue双向队列接口分析

Dueue 双向队列


Doug Lea


双向队列定义了不仅是从一头出,还可以从另外一头。
所以这样称呼。 queue队列只能从头出。即先进先出


来看看他的定义:


1. void AddFirst(E e) 新增方法
竟然不返回boolean,那人家是怎么处理的呢?
要么就加进去了,要么就抛异常。
如果我们是有一个容量限制的队列那他近似于 offerFirst


2. void addLast(E e) 新增方法
后端插入
等同于原来默认的add
有容量限制时相当于 offerLast


3. boolean offerFirst 这个是有true和false和抛异常
加入失败抛出异常


4. boolean offerLast 这个也是有true和false
加入失败抛异常
这两个包含了返回值,这样的话,可以用来做判断


5.E removeFirst 这个队列为空会抛出异常
pollFirst就返回null,这个是不同


6.E removeLast 这个也同,如果为空队列抛异常
pollLast就返回null


7.E getFirst() 这个返回头对象,如果队列为空就完蛋,抛异常


8.E getLast() 同上,


9. peekFirst 这个不同的是,会返回null


10. peekLast 同上,返回null,并且是不移除该对象,注意
peek是一瞥的意思,偷看!


11. boolean removeFirstOccurrence(Object o)
移除第一个碰见的o,如果不允许o为null,会抛异常


12.boolean removeLastOccurrence(Object o)
移除最后一个o。 o.equals(e), 不允许为null的时候抛异常


13.boolean add(E e)


14.boolean offer(E e)
.. queue的方法


再来栈的方法


18. void push(E e) 压入head,
19. E pop() 得到头节点 空的情况返回的是异常




// collecion的方法


Iterator<E> descendingIterator()
得到逆序迭代器,这个好!!!



猜你喜欢

转载自blog.csdn.net/u011402896/article/details/80045702