当前位置: 首页 > 知识库问答 >
问题:

队列接口中方法Java区别是什么?

姬魁
2023-03-14

在这里查看Java队列界面

我被方法定义弄糊涂了:

element()检索但不删除此队列的头部。

就像

peek()检索但不删除此队列的头部,如果此队列为空,则返回null。

我可以看到如果队列为空,peek返回null,但实际上两者都被定义为

如果这个队列是空的

这同样适用于< code>remove()和< code > peek();

这背后有什么目标吗,或者只是一个设计陷阱?

共有2个答案

颛孙昆
2023-03-14

下面是接口Queue:的java API中的解释。简言之,如果队列为空,element()将出现异常,peek()返回一个特殊值以指示队列为空

秦俊发
2023-03-14

让我们用一个应该回答你问题的表格来澄清一些事情:

+---------+---------------------------+------------------------+
| method  |          action           | throws when not found? |
+---------+---------------------------+------------------------+
| peek    | Retrieves, doesn't remove | NO                     |
| remove  | Retrieves, removes        | YES                    |
| element | Retrieves, doesn't remove | YES                    |                 
+---------+---------------------------+------------------------+

有些方法在找不到元素时返回 null,有些方法会引发异常。

这些方法是检索和不删除的方法,其他方法检索和删除。

 类似资料:
  • 问题内容: 以http://java.sun.com/j2se/1.5.0/docs/api/java/util/PriorityQueue.html#offer(E)为例 谁能给我一个例子,其中和方法有所不同? 根据文档,该方法通常会试图确保元素存在于而不是添加重复项中。所以我的问题是和方法之间有什么区别? 该方法是否会添加重复项?(我怀疑这是因为如果a 仅包含不同的元素,则会绕开它)。 编辑:

  • (1)队列先进先出,栈先进后出。 (2)遍历数据速度不同。 栈只能从头部取数据 也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性; 队列则不同,他基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多。

  • 本文向大家介绍队列和栈是什么?有什么区别?相关面试题,主要包含被问及队列和栈是什么?有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 队列和栈都是被用来预存储数据的。 队列允许先进先出检索元素,但也有例外的情况,Deque 接口允许从两端检索元素。 栈和队列很相似,但它运行对元素进行后进先出进行检索。

  • 我不明白Laravel和Laravel 我可以看到: 队列:收听给定队列 工作:处理队列上的下一个作业 但是仍然没有得到它,因为我已经尝试了两者,如果有任何新的队列,两者都将运行队列(工作选项不只是运行一次) 我不是在说守护进程选项。就这两个。

  • 本文向大家介绍接口和抽象类的区别是什么?相关面试题,主要包含被问及接口和抽象类的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 考察点:抽象类 Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于: 接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。 类可以实现很多个接口,但是只能继承一个抽象类 类可以不实现抽象类和接口声明的所有方法,当然,在这种情

  • 本文向大家介绍抽象类和接口的区别是什么?相关面试题,主要包含被问及抽象类和接口的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。 构造函数:抽象类可以有构造函数;接口不能有。 实现数量:类可以实现很多个接口;但只能继承一个抽象类【java只支持单继承】。 访问修饰符:接口中的方法默认使用 pub