我想知道this教程在引用以下解释时的含义。特别是我用粗体突出显示的部分。



addfirstofferFirst方法在开头插入元素
Deque实例。插入addLastofferLast方法
Deque实例末尾的元素。 当容量
Deque实例受到限制,首选方法是offerFirst
offerLast,因为addFirst可能无法引发异常
充分。

  • 为什么offerFirst是首选?
  • 如果addFirst已满,为什么addFirst不能引发异常?如果保证在这种情况下抛出异常,岂不是更好吗?
  • 最佳答案

    我认为这两种方法都是合法的(尽管offerXXX方法更可能用于有界出队)。

    如果您的代码假设队列中有可用空间,并且此假设对于代码的正确性至关重要,请使用addFirst / addLast。抛出的运行时异常(IllegalStateException)非常适合此错误情形。

    另一方面,如果完整队列是正常情况,则不要使用异常处理它。使用offerFirst / offerLast,然后检查返回的值。

    10-07 16:22