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

时间:2013-02-07 17:57:37

标签: java data-structures collections interface

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

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

虽然有类实现堆栈,例如Stack(扩展Vector),ArrayDeque(如JavaDoc中所述,“很可能是当用作堆栈“)和Stack(使用其LinkedListpush方法)时,pop的速度快于{{1}},堆栈集类型没有特定的接口。

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

2 个答案:

答案 0 :(得分:5)

请参阅java.util.Deque接口API

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

Deque有push,pop和peek方法

答案 1 :(得分:1)

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

您可以为许多角色设想许多界面,但每次都无法设计界面,或者您的代码开始变得非常冗长。

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