Queue?
是 java中的一個接口缀拭,在java.util包下面澳腹,意在實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列贞言,主要包含以下幾種接口方法贯溅。
boolean add(E e)
不超過容量限制的情況下冠胯,插入一個元素火诸,成功返回 true,失敗拋出IllegalStateException荠察。
E element()
獲得隊列頭元素置蜀,但是不刪除該元素。如果隊列空悉盆,拋出NoSuchElementException盯荤。
boolean offer(E e)
和 add 相同。
E peek()
和 element 相同舀瓢,如果隊列空廷雅,返回 null。
E poll()
和 peek 類似京髓,但是移除隊列頭元素航缀。
E remove()
返回和移除隊列頭元素。隊列空拋出NoSuchElementException異常堰怨。
AbstractQueue
java.uti包下面芥玉,實現(xiàn)了 Queue 接口的一個抽象類。繼承自AbstractCollection备图。
LinkedBlockingQueue
java.util.concurrent包下面灿巧,繼承自AbstractQueue,同時實現(xiàn)了AbstractQueue 和 Serilizable 接口揽涮。
如果不傳入大小抠藕,LinkedBlockingQueue默認大小是Integer.MAX_VALUE=0x7fffffff.
int remainingCapacity()?
剩余可用容量。
void put(E e)?
元素放入隊尾蒋困,如果隊列滿盾似,等待。e 為 null 會拋出 NPE雪标。
void offer(E e, long timeout, TimeUnit unit)
元素放入隊尾零院,超時返回 false。
boolean offer(E e)
不等待時間村刨,成功 true告抄,失敗 false。
E take()
獲得并移除隊列頭元素嵌牺,隊列空則等待打洼。
E?poll()
獲得并移除隊列頭元素龄糊,隊列空返回 null
E poll(longtimeout, TimeUnit unit)
獲得并移除隊列頭元素,超時返回 null
E peek()
獲取頭元素拟蜻,不刪除绎签,隊列空返回 null。
boolean remove(Object o)
刪除和 o equal 的元素酝锅。
boolean contains(Object o)
返回是否包含和o equal 的元素
int drainTo(Collection c)
元素轉(zhuǎn)入 c 中诡必,比 poll 高效。
int drainTo(Collection c, int maxElements)
最多 maxElements 個元素轉(zhuǎn)入 c 中搔扁。
Spliterator spliterator()
把集合分段爸舒,用于并行遍歷使用,相對于線性遍歷接口 Iterator稿蹲,java8引入扭勉。其他暫未理解,下次更新苛聘。