Java 中 Queue 接口学习

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引入。其他暂未理解,下次更新。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,526评论 0 3
  • Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue...
    天空下天的月亮阅读 905评论 0 2
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,292评论 0 16
  • 阻塞队列 BlockingQueue BlockingQueue用法 BlockingQueue 通常用于一个线...
    MPPC阅读 1,866评论 0 3
  • 明天小朋友要春游了呢! 这个是他第一次参加学校春游活动,从上周就开始念叨了,明天终于要出行了呢。 小朋友把家里好吃...
    毕楚晨阅读 195评论 0 0