java Deque与Queue
1、二者的关系
public interface Deque<E> extends Queue<E>
2、Queue接口
- 是集合框架Collection的子接口,是一种常见的数据结构,遵循先进先出的原则。基于链表来进行实现,的单向队列。LinkedList接口,实现了Queue,所以LinkedList,在插入和删除操作,效率会比较高。
poll():将队首的元素删除,并返回该元素。
peek():返回队首的元素,但不进行删除操作。
offer():将元素添加到队尾,如果成功,则返回true。
Queue的具体代码操作
Queue<String> queue=new LinkedList<>();
queue.offer("one");
queue.offer("two");
queue.offer("three");
queue.offer("four");
System.out.println(queue);
String poll = queue.poll();
System.out.println(poll);
System.out.println(queue);
String peek = queue.peek();
System.out.println(peek);
System.out.println(queue);
while(queue.size() > 0) {
System.out.println(queue.poll());
}
3、Deque接口(双向队列)
- Deque接口,是Queue接口的子接口,是指队列两端的元素,既能入队(offer)也能出队。
如果将Deque限制为只能从一端进行入队,和出队,就是栈的数据结构的实现。对于栈而言,有入栈(push)和出栈(pop),遵循先进后出的规则。
add((e)\offer(e):将元素增加到队列的末尾,如果成功,返回true。
remove()\poll():将元素从队列的队首删除。
element()\peek():返回队首的元素,但不进行删除。
栈:
push(e):入栈,添加到队首
pop(e):出栈,删除队首元素
peek():返回栈首元素,但不进行删除
Deque<String> deque = new LinkedList<String>();
deque.push("a");
deque.push("b");
deque.push("c");
System.out.println("push"+deque);
String str = deque.peek();
System.out.println(str);
System.out.println("peek"+deque);
String pops=deque.pop();
System.out.println(pops);
System.out.println("pop"+deque);
String ele=deque.element();
System.out.println(ele);
System.out.println("element"+deque);
String remove=deque.remove();
System.out.println(remove);
System.out.println("remove"+deque);
boolean result =deque.add("uu");
System.out.println(result);
System.out.println("add"+deque);
boolean results =deque.offer("cuu");
System.out.println(results);
System.out.println("offer"+deque);