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是線程安全的,多個線程可以同時對其進行操作。