美文网首页
Java集合框架(六)Deque接口

Java集合框架(六)Deque接口

作者: 清风流苏 | 来源:发表于2016-05-10 13:25 被阅读723次

    Deque表示双端队列。双端队列是在两端都可以进行插入和删除的队列。Deque是一个比StackQueue功能更强大的接口,它同时实现了栈和队列的功能。ArrayDequeLinkeList实现了Deque接口。

    注意:Deque既可以用作后进先出的栈,也可以用作先进先出的队列。

    Deque接口定义如下:

    public interface Deque<E> extends Queue<E> {
        // *** Deque methods ***
        void addFirst(E e);
        void addLast(E e);
        boolean offerFirst(E e);
        boolean offerLast(E e);
        E removeFirst();
        E removeLast();
        E pollFirst();
        E pollLast();
        E getFirst();
        E getLast();
        E peekFirst();
        E peekLast();
        boolean removeFirstOccurrence(Object o);
        boolean removeLastOccurrence(Object o);
        
        // *** Queue methods ***
        boolean add(E e);
        boolean offer(E e);
        E remove();        
        E poll();
        E element();
        E peek();
        
        // *** Stack methods ***
        void push(E e);
        E pop();
    
        // *** Collection methods ***
        boolean remove(Object o);
        boolean contains(Object o);
        public int size();
        Iterator<E> iterator();
        Iterator<E> descendingIterator();
    }
    

    双端队列方法

    双端队列方法

    插入

    addFirstofferFirstDeque实例头部插入元素。
    addLastofferLastDeque实例尾部插入元素。
    Deque实现类为有限容量时,优先使用offerFirstofferLast,因为addFirst在队列满的时候可能会插入失败而抛出异常。

    删除

    removeFirstpollFirstDeque实例头部移除元素。
    removeLastpollLastDeque实例尾部移除元素。
    Deque为空时,pollFirstpollLast将会返回null,而removeFirstremoveLast将会抛出异常。

    检索

    getFirstpeekFirst获取Deque实例的第一个元素,但是不会将元素从Deque实例中删除。类似地,getLastpeekLast获取最后一个元素。当Deque为空时,getFirstgetLast将会抛出异常,而peekFirstpeekLast将会返回null

    除了基本的插入、删除和检索方法外,还有两个预定义的方法:removeFirstOccurenceremoveLastOccurence。这两个方法见名知意。返回true的时候表示元素存在于队列,并且已经被删除。返回false时表示元素不存在于队列中,并且队列没有改变。

    相关文章

      网友评论

          本文标题:Java集合框架(六)Deque接口

          本文链接:https://www.haomeiwen.com/subject/ufqerttx.html