Java暑期学习Day39
今天是第39天,渐渐的要把思绪理清楚{:10_254:} (大眼萌光头QAQ)static/image/hrline/5.gif<。)#)))≦
支持队列操作的Queue
1.API之Queue
public interface Queue<E>
extends Collection<E>
<收集的对象加入至尾端,取得对象时从前端>
除了基本的Collection操作之外,队列还提供额外的插入,提取和检查操作。
这些方法中的每一种都有两种形式:如果操作失败,则抛出一个异常,另一种返回一个特殊值( null或false ,具体取决于操作)。 插入操作的后一种形式专门设计用于容量限制的Queue实现; 在大多数实现中,插入操作不能失败。
Summary of Queue methods Throws exception Returns special value Insert add(e) offer(e) Remove remove() poll() Examine element() peek()
(显著区别:Queue接口在add()、remove、element()等方法操作失败时会抛出异常,而offer()、poll()、peek()等方法操作失败时会返回特定值)
Modifier and Type(修饰符和类型) Method and Description(方法与说明)
boolean add(E e)
将指定的元素插入到此队列中,如果可以立即执行此操作,而不会违反容量限制, true在成功后返回IllegalStateException
如果当前没有可用空间,则抛出IllegalStateException。
E element()
检索,但不删除,这个队列的头。
boolean offer(E e)
如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中。
E peek()
检索但不删除此队列的头,如果此队列为空,则返回 null 。
E poll()
检索并删除此队列的头,如果此队列为空,则返回 null 。
E remove()
检索并删除此队列的头。
ps.接口Deque与其有类似之处——
如Deque中定义addFirst()、getLast()等方法操作失败时会抛出异常
而offerFirst()、pollLast()等方法操作失败时会返回特定值
static/image/hrline/line7.png
同时Queue中某些方法与Deque中某些方法同义(。・∀・)ノ
如Queue中的add()相当于Deque中的addLast()
offer() offerLast()
poll() pollFirst()
remove() removeFirst()
element() getFirst()
peek() peekFirst()
2.代码辅助理解
package collection;
import java.util.ArrayDeque;
import java.util.Deque;
import static java.lang.System.out;
public class Stack {
private Deque elems = new ArrayDeque();
private int capacity;
public Stack(int capacity) {
this.capacity = capacity;
}
public boolean push(Object elem) {
if (isFull()) {
return false;
}
return elems.offerFirst(elem);
}
private boolean isFull() {
return elems.size() + 1 > capacity;
}
public Object pop() {
return elems.pollLast();
}
public Object peek() {
return elems.peekLast();
}
public int size() {
return elems.size();
}
public static void main(String[] args) {
Stack stack = new Stack(5);
stack.push("Justin");
stack.push("Monica");
stack.push("Irene");
out.println(stack.pop());
out.println(stack.pop());
out.println(stack.pop());
}
}
结果是——
Justin
Monica
Irene
ps.import static是静态导入
页:
[1]