为什么Java提供了两种从Queue中删除元素的方法?

Java中的Queue实现有两种删除元素的方法:一种是抛出异常的remove(),另一种是poll(),它为空队列返回null。我有两个疑问:

为什么队列有不同的实现来删除元素?
>哪个实现使用什么时候?

最佳答案
在某些情况下,预计队列将为空,在这种情况下,不会抛出异常的方法是适当的。在其他情况下,队列为空的异常情况是异常情况。

抛出异常会导致性能损失,如果您希望队列不时地为空,那么您不希望将队列空逻辑处理为捕获异常 – 它既昂贵又困难读书。

在相反的情况下,您不希望队列永远是空的,这是一个编程错误的迹象,或其他一些特殊情况,而且您不想编写丑陋的错误条件检查代码(例如检查对于null),因为在这种情况下,可能会比捕获异常(可以在另一个范围中执行)更可读。

转载注明原文:为什么Java提供了两种从Queue中删除元素的方法? - 代码日志