java中stack(棧)的使用代碼實例
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類中方法:
官網(wǎng)API:
方法分析:
empty():判斷棧是否為空,為空返回true,否則返回false
peek():取出棧頂元素,但是不從棧中移除元素
pop():取出棧頂元素,并且將其從棧中移除
push(Eitem):元素入棧
search(Objecto):在棧中查找元素位置,位置從棧頂開始往下算,棧頂為1,
依次往下數(shù)到所查找元素位置,如果所查找元素在棧中不存在,則返回-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(棧)的使用代碼實例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- JAVA中StackOverflowError錯誤的解決
- JVM---jstack分析Java線程CPU占用,線程死鎖的解決
- Java中使用StackWalker和Stream API進行堆棧遍歷
- Java StackTraceElement實例代碼
- Java線程Dump分析工具jstack解析及使用場景
- 深入分析JAVA Vector和Stack的具體用法
- Java反射之Call stack introspection詳解
- Java數(shù)據(jù)結構與算法之棧(Stack)實現(xiàn)詳解
- OneinStack一鍵安裝PHP/JAVA/HHVM和超詳細的VPS手動安裝LNMP的方法
- Java 異常的棧軌跡(Stack Trace)詳解及實例代碼
- java自帶的工具Jstack截取進程中的堆棧信息
- Java 并發(fā)編程ArrayBlockingQueue的實現(xiàn)
- 詳解JAVA中priorityqueue的具體使用
- 詳解Java中的延時隊列 DelayQueue
- 詳解java中DelayQueue的使用
- java隊列之queue用法實例分析
- Java多線程工具篇BlockingQueue的詳解
- Java Stack與Queue詳解
相關文章
解決Springboot-application.properties中文亂碼問題
這篇文章主要介紹了解決Springboot-application.properties中文亂碼問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11深入理解SpringBoot?最大連接數(shù)及最大并發(fā)數(shù)
SpringBoot能支持的最大并發(fā)量主要看其對Tomcat的設置,可以在配置文件中對其進行更改,本文就來介紹一下SpringBoot?最大連接數(shù)及最大并發(fā)數(shù),感興趣的可以了解一下2023-08-08Spring Boot下如何自定義Repository中的DAO方法
這篇文章主要介紹了Spring Boot下如何自定義Repository中的DAO方法,需要的朋友可以參考下2017-06-06Java并發(fā)編程數(shù)據(jù)庫與緩存數(shù)據(jù)一致性方案解析
這篇文章主要為大家介紹了Java并發(fā)編程中數(shù)據(jù)庫與緩存數(shù)據(jù)一致性解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04