为什么队列有抛出异常的方法而其他集合的类没有?

s1ag04yj  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(377)

我回到java中修改集合框架。我一直都知道但一直不明白的是为什么 Queue 实现有抛出异常的方法吗?
所以有 add() , element() 以及 remove() 在另一边抛出异常 offer() , peek() 以及 poll() 返回特殊值。在list、set和map中,从来没有这样的选项——我们只有返回一些值并且从不抛出异常的方法。
我的简单问题是为什么?怎么回事 Queue 这个特殊的集合有更通用的方法,而其他集合接口只有“返回类型方法”?我会错过什么?

fdx2calv

fdx2calv1#

我不能代表语言/数据结构设计人员发言,但我认为这是因为您所比较的对象的使用性质不同。
像set、map或list这样的对象被设计为包含信息,但是queue对象被设计为在处理之前保存元素,并且除了基本的收集操作之外,它还添加了一些额外的操作来帮助处理。
在处理时,某些情况可能需要或可能导致队列为空,这是预期的行为,在这些情况下,具有不引发异常的方法是适当和有用的。在其他情况下,开发人员可以将队列为空视为一种例外情况,例外情况是适当的。

相关问题