LinkedList添加了可以使其用作棧、隊(duì)列、雙端隊(duì)列的方法:
1.getFirst()和element()一樣,返回列表的頭(第一個(gè)元素)
2.peek()與前兩個(gè)方法不同,前兩個(gè)方法當(dāng)List為空時(shí)拋出NoSuchElementException異常,而peek()在List為空的時(shí)候返回null不會(huì)拋出異常
3.removeFirst()與remove()完全一樣,移除并返回列表的頭(第一個(gè)元素),當(dāng)列表為空時(shí),拋出NoSuchElementException異常
4.poll()方法也是移除并返回列表的頭,當(dāng)列表為空時(shí),返回null,不會(huì)拋出異常
5.removeLast()移除并返回列表最后一個(gè)元素 (出棧)
6.addFirst()在列表頭添加一個(gè)元素
7.add(), addLast(), offer()都是在列表尾添加一個(gè)元素 (入棧)
Stack(棧)
//逆序輸出一串字符串
Stack<String> stack = new Stack<String>();
String s = "i have a dream";
for (String s1 : s.split("")) {
stack.push(s1);
}
while(!stack.empty()){
System.out.print(stack.pop());
}
/**
輸出結(jié)果: maerd a evah i
**/
LIFO(后進(jìn)先出)
1.empty()檢查棧內(nèi)是否還有元素
2.push(T)入棧
3.pop()出棧