Queue<String> queue = new LinkedList<>(); queue.add("A"); queue.add("B"); queue.add("C"); 复制代码 获取队头元素: String element = queue.peek(); 复制代码 获取并移除队头元素: String element = queue.poll(); 复制代码 检查队列是否为空: boolean isEmpty = queue.isEmpty(); 复制代码...
int size = queue.size(); // 获取队列中的元素个数 复制代码 判断队列是否为空: boolean isEmpty = queue.isEmpty(); // 判断队列是否为空 复制代码 判断队列是否已满: boolean isFull = queue.remainingCapacity() == 0; // 判断队列是否已满 复制代码 需要注意的是,在使用ArrayBlockingQueue时,put...
PriorityBlockingQueue是一个没有边界的队列,它的排序规则和java.util.PriorityQueue一样。需要注意,PriorityBlockingQueue中允许插入null对象。 所有插入PriorityBlockingQueue的对象必须实现java.lang.Comparable接口,队列优先级的排序规则就是按照我们对这个接口的实现来定义的。 另外,我们可以从PriorityBlockingQueue获得一个迭...
else throw new IllegalStateException("Queue full"); } (2)put 方法 //添加制定元素到队尾,如果队列满了一直等待队列有元素出队 public void put(E e) throws InterruptedException { checkNotNull(e); //上锁 final ReentrantLock lock = this.lock; lock.lockInterruptibly(); try { while (count == ...
PriorityBlockingQueue是Java中实现了堆数据结构的线程安全的有界阻塞队列。它可以在多线程场景下安全地进行元素添加、删除和获取操作,而且可以根据元素的优先级进行排序。 一、PriorityBlockingQueue概述 PriorityBlockingQueue类实现了BlockingQueue接口,它是一个线程安全的队列,继承自AbstractQueue类,而AbstractQueue类又实现了...