2

キューは通常、FIFO (先入れ先出し) 方式で要素を並べ、LIFO (後入れ先出し) 方式でスタックします。

QueueJava 標準ライブラリには、キューのモデル化と呼ばれる特定のインターフェイスと、それを実装する一連のクラスがあります。

Stack(これは を拡張するVector)、 ( JavaDocArrayDequeに記載されているように、「スタックとして使用する場合よりも高速になる可能性が高い」)、および(およびメソッドを使用する) など、スタックを実装するクラスはありますが、特定のインターフェイスはありません。スタック コレクション タイプの場合。StackLinkedListpushpop

Java 標準ライブラリにスタック コレクション型のインターフェイスがないのはなぜですか?

4

2 に答える 2

5

java.util.Dequeインターフェイス APIを参照

Deques は LIFO (Last-In-First-Out) スタックとしても使用できます。このインターフェイスは、従来の Stack クラスよりも優先して使用する必要があります。両端キューがスタックとして使用される場合、要素は両端キューの先頭からプッシュおよびポップされます。

Deque には push、pop、peek メソッドがあります

于 2013-02-07T18:02:41.293 に答える
1

Java でのインターフェースの設計は、インターフェースを実装する各クラスがそれを宣言することを意味します。

多くのロールに対して多くのインターフェイスを考えることはできますが、毎回インターフェイスを設計することはできません。そうしないと、コードが非常に冗長になり始めます。

したがって、選択を行う必要があります。LIFO インターフェースを設計し、それを宣言する LIFO クラスを用意することは、明らかにそれほど重要ではありませんでした。

于 2013-02-07T18:02:31.487 に答える