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(); 返回隊頂對象(不刪),如果隊列爲空會拋出異常