java.util.ArrayDeque remove和removeFirst

时间:2013-06-24 07:25:17

标签: java

我看了java.util.ArrayDeque类的remove()和removeFirst()方法,我看到remove()调用removeFirst()和两个方法做了同样的操作。为什么同一操作有两种方法?

2 个答案:

答案 0 :(得分:5)

这是因为Queue interface要求实现类以删除函数,Deque interface要求实现类以具有removeFirst函数,并且ArrayDeque实现Deque(双端队列),这是Queue接口的扩展版本。因此,ArrayDeque必须实现两个接口的功能。 在我看来,出于清晰的原因,removeFirst函数存在,因为remove函数在名称方面会有些模糊。

答案 1 :(得分:3)

它们由不同的接口定义。

Queue.remove()在Java 5.0中定义并删除队列的“next”元素。

Deque.removefirst()在Java 6中定义,它删除了双端队列的第一个元素。它类似于removeLast();

在ArrayDeque中实现它们的方式是next的remove()实际上与removeFirst()相同。

如果您想知道使用哪一个,我建议使用您最喜欢的那个。