2

队列通常以 FIFO(先进先出)方式对元素进行排序,而堆栈则以 LIFO(后进先出)方式进行。

在 Java 标准库中,有一个称为Queue建模队列的特定接口和一组实现它的类。

尽管有实现堆栈的类,例如Stack(which extends Vector)、ArrayDeque(如JavaDoc中所述,“它可能比Stack​​用作堆栈时更快”) 和LinkedList(及其pushpop方法),但没有特定的接口对于堆栈集合类型。

为什么Java标准库中没有堆栈集合类型的接口?

4

2 回答 2

5

java.util.Deque接口 API

双端队列也可以用作 LIFO(后进先出)堆栈。应优先使用此接口而不是旧的 Stack 类。当双端队列用作堆栈时,从双端队列的开头推送和弹出元素。

Deque 有 push、pop 和 peek 方法

于 2013-02-07T18:02:41.293 回答
1

java中接口的设计意味着每个实现接口的类都声明它。

你可以为许多角色设想许多接口,但你不能每次都设计一个接口,或者你的代码开始变得非常冗长。

所以必须做出选择。显然,设计一个 LIFO 接口并让 LIFO 类声明它并不是那么重要。

于 2013-02-07T18:02:31.487 回答