java如何使用queue
使用Queue接口的基本方法
Java中的Queue接口位于java.util包中,是一种先进先出(FIFO)的数据结构。常用实现类包括LinkedList、ArrayDeque和PriorityQueue。
创建Queue实例:
Queue<String> queue = new LinkedList<>();
添加元素使用add()或offer()方法:
queue.add("A"); // 队列满时抛出异常
queue.offer("B"); // 队列满时返回false
移除和查看元素
移除队首元素使用remove()或poll():

String head = queue.remove(); // 队列空时抛出异常
String safeHead = queue.poll(); // 队列空时返回null
查看但不移除队首元素:
String peek = queue.element(); // 队列空时抛出异常
String safePeek = queue.peek(); // 队列空时返回null
不同Queue实现类的特性
LinkedList支持所有Queue操作,同时具备列表功能:
Queue<Integer> linkedQueue = new LinkedList<>();
ArrayDeque是双端队列的高效实现,比LinkedList更节省内存:

Queue<Integer> arrayDeque = new ArrayDeque<>();
PriorityQueue实现优先级队列,元素按自然顺序或Comparator排序:
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
// 取出顺序将是1,2,3
队列遍历和线程安全
遍历队列可以使用迭代器或循环:
while(!queue.isEmpty()) {
String item = queue.poll();
System.out.println(item);
}
对于多线程环境,考虑使用线程安全的BlockingQueue实现如LinkedBlockingQueue:
BlockingQueue<String> blockingQueue = new LinkedBlockingQueue<>();
blockingQueue.put("item"); // 阻塞直到空间可用
String item = blockingQueue.take(); // 阻塞直到元素可用






