LinkedBlockingDeque是Java中的一个FIFO(先进先出)双端队列,它是通过一个链表实现的。 以下是LinkedBlockingDeque的一些常用方法和用法:
创建LinkedBlockingDeque对象:
LinkedBlockingDeque<String> deque = new LinkedBlockingDeque<>();
添加元素:
addFirst(E e)
:将元素添加到队列的头部。addLast(E e)
:将元素添加到队列的尾部。offerFirst(E e)
:将元素添加到队列的头部,如果队列已满则返回false。offerLast(E e)
:将元素添加到队列的尾部,如果队列已满则返回false。获取并移除元素:
removeFirst()
:获取并移除队列的头部元素。removeLast()
:获取并移除队列的尾部元素。pollFirst()
:获取并移除队列的头部元素,如果队列为空则返回null。pollLast()
:获取并移除队列的尾部元素,如果队列为空则返回null。获取但不移除元素:
getFirst()
:获取但不移除队列的头部元素。getLast()
:获取但不移除队列的尾部元素。peekFirst()
:获取但不移除队列的头部元素,如果队列为空则返回null。peekLast()
:获取但不移除队列的尾部元素,如果队列为空则返回null。阻塞方法:
putFirst(E e)
:将元素添加到队列的头部,如果队列已满则阻塞等待。putLast(E e)
:将元素添加到队列的尾部,如果队列已满则阻塞等待。takeFirst()
:获取并移除队列的头部元素,如果队列为空则阻塞等待。takeLast()
:获取并移除队列的尾部元素,如果队列为空则阻塞等待。注意:LinkedBlockingDeque是线程安全的,多个线程可以同时对其进行操作。