Java 棧和隊列

Stack

class Stack

棧:後進先出

在java中 繼承關係是

Stack -> Vector -> AbstractList -> AbstractCollection -> Collection -> Iterable

Stack 可用 Deque雙端隊列具體實現類代替。

Stack主要方法有:

1. E push();    將元素進棧,調用的是Vector中的addElement()方法

2. E pop();     彈出棧頂元素(調用peek()方法),並從棧頂刪除該元素。調用Vector 的removeElementAt(len - 1);

3. E peek();    返回棧頂元素(不刪),如果棧爲空會throw new EmptyStackException();

4. boolean empty();  判斷棧是否爲空 return size() == 0;

5. int search(Object o); 返回該對象距棧頂的位置(第一次出現的),沒有該對象則返回-1調用的方法是   int i = lastIndexOf(o); return size() - i;

Queue

interface Queue

隊列:先進先出

在java中的繼承關係是Queue -> Collection -> Iterable

子類有:BlockingDeque, BlockingQueue, Deque, TransferQueue

Queue的只要方法有:

1. boolean add(E e); 向隊頂插入元素,超出指定長度拋出異常。
2. boolean offer(E e);向隊頂插入元素,不拋異常。
3. E remove(); 返回隊頂對象並刪除該對象,如果隊列爲空會拋出異常
4. E poll(); 返回隊頂對象並刪除該對象,如果隊列爲空會返回null
5. E element(); 返回隊頂對象(不刪),如果隊列爲空會返回null,不拋異常
6. E peek(); 返回隊頂對象(不刪),如果隊列爲空會拋出異常
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章