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);
    }
}

输出:

image-20201223222111496

API 方法说明:

offer() 方法是 Queue 相关的方法之一,它在允许的情况下,将一个元素插入到队尾,或者返回 false。

peek()element() 方法都将在不移除的情况下返回队头,但是 peek() 方法在队列为空时返回 null,而 element() 会抛出 NoSuchElementException 异常。

poll()remove() 方法将移除并返回队头,但是 poll() 在队列为空时返回 null,而 remove() 会抛出 NosuchElementException 异常。

原文地址:https://www.cnblogs.com/fanlumaster/p/14181846.html