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