当我们有 peek() 和 poll() 时,在 Queue 接口中有 element() 和 remove() 有什么用?
我检查了文档,发现这些方法也存在于 java 7 中。提到的唯一区别是 element() 和 remove() 为空队列抛出异常。如果队列为空,我们可以手动抛出异常(如果需要)。
是否真的有必要为这唯一的区别保留两组方法?如果我们开始根据这些差异制作不同的方法,我认为 java 类和接口将充满很多方法。这是真正的面向对象风格吗?
编辑:只是为了让我的问题清楚,所以我没有得到相同的“你需要例外的地方使用这个,否则使用那个”的答案。我无法理解的是有很多这样的方法,其中具有相同差异的额外方法将很有用。那么为什么它只在某些情况下实施而不在其他情况下实施呢?为什么没有整体应用相同的原则?我可以理解,也许只有语言创造者才能回答这些为什么。我想知道这种方法是否符合 OOP 原则?