Queue
是 java中的一个接口,在java.util包下面,意在实现数据结构中的队列,主要包含以下几种接口方法。
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包下面,实现了 Queue 接口的一个抽象类。继承自AbstractCollection。
LinkedBlockingQueue
java.util.concurrent包下面,继承自AbstractQueue,同时实现了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)
元素转入 c 中,比 poll 高效。
int drainTo(Collection c, int maxElements)
最多 maxElements 个元素转入 c 中。
Spliterator spliterator()
把集合分段,用于并行遍历使用,相对于线性遍历接口 Iterator,java8引入。其他暂未理解,下次更新。