Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我查看了 java.util.ArrayDeque 类的 remove() 和 removeFirst() 方法,我看到 remove() 调用了 removeFirst() 并且两个方法进行了相同的操作。为什么同一操作有两种方法?
这是因为Queue 接口要求实现类具有 removeFirst 函数,而Deque 接口要求实现类具有 removeFirst 函数,而 ArrayDeque 实现了 Deque(双端队列),它是 Queue 接口的最终版本。因此,ArrayDeque 必须实现这两个接口的功能。在我看来,removeFirst 函数是为了清楚起见而存在的,因为 remove 函数的名称会有点模棱两可。
它们由不同的接口定义。
Queue.remove() 在 Java 5.0 中定义并删除队列的“下一个”元素。
Deque.removefirst() 是在 Java 6 中定义的,它删除双端队列的第一个元素。它类似于 removeLast();
这些在 ArrayDeque 中的实现方式是 next 的 remove() 实际上与 removeFirst() 相同。
如果您想知道使用哪一个,我建议使用您认为最清晰的那个。