Java Collections Framework

Queue
抛出异常 返回特殊值
插入 add(e) offer(e)
移除 remove() poll()


Deque继承Queue(double ended queue(双端队列))

第一个元素(头部) 最后一个元素(尾部)
插入 addFirst(e) offerFirst(e) addLast(e) offerLast(e)
移除 removeFirst() pollFirst() removeLast() pollLast()
检查 getFirst() peekFirst() getLast() peekLast()


Queue 方法 等效 Deque 方法
add(e) addLast(e)
offer(e) offerLast(e)
remove() removeFirst()
poll() pollFirst()
element() getFirst()
peek() peekFirst()


BlockingQueue 相对于Queue多了两个操作,阻塞和最大时间内阻塞.
抛出异常 返回特殊值 阻塞 超时
插入 add(e) offer(e) put(e) offer(e, time, unit)
移除 remove() poll() take() poll(time, unit)


BlockingDeque继承BlockingQueue相当于上面Deque方法多了first和last的阻塞和超时的方法.

对于Dequeb也可以作用于LIFO方法.堆栈(元素被推入双端队列的开头并从双端队列开头弹出)
堆栈方法 等效 Deque 方法
push(e) addFirst(e)
pop() removeFirst()
peek() peekFirst()


对于性能.按以下顺序
性能 实现
ConcurrentLinkedQueue 1 单向链表,CAS
LinkedBlockingQueue  2 单向链表,lock
LinkedBlockingDeque 3 双向链表,lock



你可能感兴趣的:(Collections)