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] } }