java中stack類繼承於vector,其特性為後進先出(lastinfirstout).
入棧和出棧實例圖:
實例圖的java代碼實例:
package com.lanhuigu.java.ListTest;import java.util.Stack;public class StackTest {public static void main(String[] args) {Stack<String> staffs = new Stack<String>();// 入棧順序: a,b,c,d,e staffs.push("a");staffs.push("b");staffs.push("c");staffs.push("d");staffs.push("e");// 出棧順序: e,d,c,b,a while( !staffs.isEmpty()) {System.out.print(staffs.pop() + " ");}}}程序運行結果:
edcba
Stack類中方法:
官網API:
方法分析:
empty():判斷棧是否為空,為空返回true,否則返回false
peek():取出棧頂元素,但是不從棧中移除元素
pop():取出棧頂元素,並且將其從棧中移除
push(Eitem):元素入棧
search(Objecto):在棧中查找元素位置,位置從棧頂開始往下算,棧頂為1,
依次往下數到所查找元素位置,如果所查找元素在棧中不存在,則返回-1。
關於這幾個方法的實例:
package com.lanhuigu.java.ListTest;import java.util.Stack;public class StackMethodTest {public static void main(String[] args) {Stack<String> staffs = new Stack<String>();// 入棧順序: a,b,c,d,e staffs.push("a");staffs.push("b");staffs.push("c");staffs.push("d");staffs.push("e");System.out.println("empty():" + staffs.empty());System.out.println("peek():" + staffs.peek());System.out.println("search(Object o):" + staffs.search("a"));System.out.println("search(Object o):" + staffs.search("e"));System.out.println("search(Object o):" + staffs.search("no"));// 出棧順序: e,d,c,b,a while( !staffs.isEmpty()) {System.out.print(staffs.pop() + " ");}System.out.println("=====空棧中使用方法=======");System.out.println("empty():" + staffs.empty());//System.out.println("peek():" + staffs.peek());// 在空棧中使用時報錯,因為沒有棧頂元素System.out.println("search(Object o):" + staffs.search("a"));System.out.println("search(Object o):" + staffs.search("e"));System.out.println("search(Object o):" + staffs.search("no"));//System.out.print(staffs.pop());// 空棧中移除棧頂元素,報錯}}程序運行結果:
以上幾個方法是Stack繼承於Vector擴展的方法,因為Stack繼承於Vector,哪麼Vector中的非private方法
也是Stack類的方法。
Vector中的方法,官方API_1.8:
總結
以上就是本文關於java中stack(棧)的使用代碼實例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!