导航:首页 > 编程语言 > java的队列类

java的队列类

发布时间:2024-10-24 05:14:13

java中的队列都有哪些,有什么区别

阻塞队列、普通队列,非阻塞队列。

阻塞队列与普通队列的而区别在于,当队列是空时,从队列中获取元素的操作会被阻塞,或则当队列是满的时,往队列中增加元素会被阻塞,试图从空的队列中取元素的线程或从满的队列中添加元素的线程同样会被阻塞。

Ⅱ java中的“queue类”是什么,有什么作用

java中的queue类是队列数据结构管理类。在它里边的元素可以按照添加它们的相同顺序被移除。
队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和 LIFO 队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的头都是调用remove()或poll()所移除的元素。在 FIFO 队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个Queue实现必须指定其顺序属性。

offer 添加一个元素并返回true 如果队列已满,则返回false
poll 移除并返问队列头部的元素 如果队列为空,则返回null
peek 返回队列头部的元素 如果队列为空,则返回null
put 添加一个元素 如果队列满,则阻塞
take 移除并返回队列头部的元素 如果队列为空,则阻塞
element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常

add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
remove 移除并返回队列头部的元素 如果队列为空,则抛出一个
NoSuchElementException异常

注意:poll和peek方法出错进返回null。因此,向队列中插入null值是不合法的。

还有带超时的offer和poll方法重载,例如,下面的调用:
boolean success = q.offer(x,100,TimeUnit.MILLISECONDS);
尝试在100毫秒内向队列尾部插入一个元素。如果成功,立即返回true;否则,当到达超时进,返回false。同样地,调用:
Object head = q.poll(100, TimeUnit.MILLISECONDS);
如果在100毫秒内成功地移除了队列头元素,则立即返回头元素;否则在到达超时时,返回null。
阻塞操作有put和take。put方法在队列满时阻塞,take方法在队列空时阻塞。

Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue 继承了Queue接口。

阅读全文

与java的队列类相关的资料

热点内容
海口童程童美学编程怎么样 浏览:694
vb编程未找到方法 浏览:239
三国战记命令 浏览:922
程序员穿运动鞋 浏览:505
自来水公司需要电脑编程 浏览:309
金融app如何从银行卡扣款 浏览:556
网站的源码修改成自己的 浏览:802
本科生程序员是初级吗 浏览:637
dht1151单片机 浏览:183
milvus源码 浏览:888
养生会所溯源码燕窝即食 浏览:536
法语词汇渐进pdf 浏览:791
手机应用加密忘密码怎么办 浏览:266
荣耀手机如何设置app安装权限 浏览:835
程序员征婚方法 浏览:226
如何使用天文app 浏览:882
站长二开导航网源码 浏览:569
51单片机最小系统pcb图 浏览:927
文件夹不显示头条 浏览:109
加密狗驱动怎么更新 浏览:489