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()。