Java Queue 使用范例
import java.util.LinkedList;
import java.util.Queue;
import java.util.Random;
public class QueueDemo {
public static void printQ(Queue queue) {
while (queue.peek() != null) // 在不移除的情况下返回队头,队列为空时返回 null
System.out.print(queue.remove() + " "); // 移除并返回队头
System.out.println();
}
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<>();
Random rand = new Random(47);
for (int i = 0; i < 10; i++)
queue.offer(rand.nextInt(i + 10)); // 将一个元素插入到队尾,或者返回 false,这里自动包装机制会自动将 nextInt() 方法的 int 结果转换为 queue 所需的 Integer 对象
printQ(queue);
Queue<Character> qc = new LinkedList<>();
for (char c : "Brontosaurus".toCharArray())
qc.offer(c);
printQ(qc);
}
}
输出:
API 方法说明:
offer() 方法是 Queue 相关的方法之一,它在允许的情况下,将一个元素插入到队尾,或者返回 false。
peek() 和 element() 方法都将在不移除的情况下返回队头,但是 peek() 方法在队列为空时返回 null,而 element() 会抛出 NoSuchElementException 异常。
poll() 和 remove() 方法将移除并返回队头,但是 poll() 在队列为空时返回 null,而 remove() 会抛出 NosuchElementException 异常。