Deque中的方法:

Deque成为双端队列,是Queue接口的子接口,具体实现类为LinkedList。

Deque可以实现两种数据结构:

 若Deque规定从一端进出队列,可以看做栈;若从一端进队,从另一端出队,则可以看做队列。

Deque中的主要方法有:

    1.Queue  Method:

 

boolean:  add(E e)

  作用:将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出 IllegalStateException异常。

boolean:  offer(E e)

  作用: 将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常。

E       :  remove()                                            

作用: 获取并移除此队列的头。此方法与 poll 唯一的不同在于:此队列为空时将抛出一个异常。

E:          poll()

作用:  获取并移除此队列的头,如果此队列为空,则返回 null。

E:         element()

作用:  获取,但是不移除此队列的头。此方法与 peek 唯一的不同在于:此队列为空时将抛出一个异常。

E:   peek()

作用:   获取但不移除此队列的头;如果此队列为空,则返回 null。

  2.  Stack  Method:

void: push(E e);

作用: 添加元素到栈顶

E :pop();

作用:返回栈顶元素并且删除栈顶元素。

E: peek();

作用:获取但是不删除栈顶元素。

public class MethodOfDeque {

    public static void main(String[] args) {
        /*
         * Deque双端队列
         * 1.当从一端进从一端出,可以看做队列
         * 2.当从一端进出,可以看做栈
         */
        
        //Queue
        Deque<String> queue = new  LinkedList<String>(); 
        queue.add("a");
        queue.add("b");
        queue.add("c");
        queue.add("d");
        queue.add("e");
        queue.add("f");
        queue.add("g");
        queue.add("h");
        queue.offer("i");  //将指定的元素插入此队列,但是用容量有限的队列是,此法通常优于add(E).
        
        System.out.println(queue);//[a, b, c, d, e, f, g, h, i]

        //peek(); 返回但是不删除队列的头
        String s1 = queue.peek();
        System.out.println(s1+"---"+queue);  //  a---[a, b, c, d, e, f, g, h, i]

        //poll(); 获取并且删除队列的头
        s1 = queue.poll();
        System.out.println(s1+"---"+queue);//a---[b, c, d, e, f, g, h, i]

        //Stack
        Deque<String> stack = new LinkedList<String> ();
        stack.push("a");
        stack.push("b");
        stack.push("c");
        stack.push("d");
        System.out.println(stack);  //[d, c, b, a]   栈,先进后出
        
        String s2 = stack.peek();  //返回但是不删除栈顶元素
        System.out.println(s2+"---"+stack);   //d---[d, c, b, a]
        
        s2 = stack.pop();  //返回并且删除栈顶元素
        System.out.println(s2+"---"+stack);  //d---[c, b, a]



            
    }
}

 

 

 

posted @ 2013-10-04 19:58  iwwenbo  阅读(2017)  评论(0编辑  收藏  举报