ConcurrentLinkedQueue常用方法:
增:
add :底层调用offer
offer : 将指定元素插入此队列的尾部
删:
poll 是从队列取出元素并且删除该元素
remove 如果此元素不存在,则返回 false,移除成功返回true
读:
peek() 获取但不移除此队列的头;如果此队列为空,则返回 null
contains(Object o) 如果此队列包含指定元素,则返回 true
iterator() 返回在此队列元素上以恰当顺序进行迭代的迭代器
其他:
size() or isEmpty()
注意点的:
如果此队列包含的元素数大于 Integer.MAX_VALUE,则返回 Integer.MAX_VALUE。
需要小心的是,与大多数 collection 不同,此方法不是 一个固定时间操作。由于这些队列的异步特性,确定当前的元素数需要进行一次花费 O(n) 时间的遍历。
所以在需要判断队列是否为空时,尽量不要用 queue.size()>0,而是用 !queue.isEmpty()。