为什么 Queue 有抛出异常的方法而其他 Collection 的 类 没有?

Why does Queue has methods that throw exceptions while other Collection's classes don't?

我回来修改 Java 中的 集合框架。我一直知道但从未理解的事情是为什么 Queue 实现具有 抛出异常的方法 ?

所以 add()element()remove() 抛出异常 而在另一边 offer()peek()poll()return 特殊值 。在 ListSetMap 中从来没有这样的选项——我们只有 return 一些值并且从不抛出异常。

我的简单问题是为什么?为什么Queue这个特殊的方法比较通用,而其他Collection Interfaces只有'return type methods'?我可能缺少什么?

我不能代表 language/data 结构设计师发言,但我认为这是因为您所比较的对象在使用上的性质不同。

SetMapList 这样的对象旨在包含信息,但 Queue 对象设计用于在处理之前保存元素,除了基本的收集操作之外,它还添加了一些额外的操作来帮助处理。

在处理时,某些情况可能需要或可能导致队列为空,这是预期的行为,在那些情况下,使用不抛出异常的方法是合适且有用的。在其他情况下,开发人员可以将队列为空视为一种例外情况,并且例外是适当的。