Java 为什么队列中的方法在其他集合';s类不';T

Java 为什么队列中的方法在其他集合';s类不';T,java,collections,queue,Java,Collections,Queue,我回到了用Java修改集合框架的话题。我一直知道但从未理解的是,为什么Queue实现有抛出异常的方法 因此,有抛出异常的add()、element()和remove(),而在另一端offer()、peek()和poll()返回特殊值。在列表、集合和映射中,从来没有这样的选项-我们只有返回一些值且从不抛出异常的方法 我的简单问题是为什么?为什么Queue这个特殊的集合有更多的通用方法,而其他集合接口只有“返回类型方法”?我可能遗漏了什么?我不能代表语言/数据结构设计师发言,但我认为这是因为您正在比

我回到了用Java修改集合框架的话题。我一直知道但从未理解的是,为什么
Queue
实现有抛出异常的方法

因此,有抛出异常的
add()
element()
remove()
,而在另一端
offer()
peek()
poll()
返回特殊值。在列表集合映射中,从来没有这样的选项-我们只有返回一些值且从不抛出异常的方法


我的简单问题是为什么?为什么
Queue
这个特殊的集合有更多的通用方法,而其他集合接口只有“返回类型方法”?我可能遗漏了什么?

我不能代表语言/数据结构设计师发言,但我认为这是因为您正在比较的对象在使用上存在本质上的差异

集合映射列表这样的对象被设计为包含信息,但是队列对象被设计为在处理之前保存元素,并且,除了基本的收集操作外,它还添加了一些额外的操作来帮助处理


在处理时,某些情况可能需要或可能导致队列为空,这是预期的行为,在这些情况下,使用不引发异常的方法是适当和有用的。在其他情况下,开发人员可以将队列看作是一个特殊的情况,并且异常是合适的。< /P>你检查了java文档吗?它被认为是一种不同的,因此是不同的方法。人们似乎想要队列和列表,而不仅仅是队列。