java队列如何使用
Java队列的基本使用
Java提供了多种队列实现,包括LinkedList、ArrayDeque、PriorityQueue等。队列通常遵循先进先出(FIFO)原则,但某些实现(如PriorityQueue)会根据优先级排序。
创建队列
使用LinkedList或ArrayDeque实现普通队列:
Queue<String> queue = new LinkedList<>();
Queue<Integer> queue = new ArrayDeque<>();
使用PriorityQueue实现优先级队列:
Queue<Integer> priorityQueue = new PriorityQueue<>();
添加元素
使用add()或offer()方法添加元素:
queue.add("A"); // 如果队列已满,抛出异常
queue.offer("B"); // 如果队列已满,返回false
移除元素
使用remove()或poll()方法移除元素:
String element = queue.remove(); // 如果队列为空,抛出异常
String element = queue.poll(); // 如果队列为空,返回null
查看队首元素
使用element()或peek()方法查看队首元素:
String head = queue.element(); // 如果队列为空,抛出异常
String head = queue.peek(); // 如果队列为空,返回null
队列大小和判空
使用size()和isEmpty()方法:
int size = queue.size();
boolean isEmpty = queue.isEmpty();
优先级队列的使用
PriorityQueue默认按自然顺序排序,也可以自定义比较器:
Queue<Integer> priorityQueue = new PriorityQueue<>(Comparator.reverseOrder());
priorityQueue.offer(3);
priorityQueue.offer(1);
priorityQueue.offer(2);
// 输出顺序为3, 2, 1
阻塞队列的使用
Java还提供了BlockingQueue接口的实现,如ArrayBlockingQueue和LinkedBlockingQueue,适用于多线程环境:
BlockingQueue<String> blockingQueue = new ArrayBlockingQueue<>(10);
blockingQueue.put("A"); // 阻塞直到有空间
String item = blockingQueue.take(); // 阻塞直到有元素





