Java集合類--Stack

1:Stack簡單介紹

Stack是棧。它的特性是:先進后出(FILO, First In Last Out)。

Stack類表示后進先出(LIFO)的對象堆棧。它通過五個操作對類Vector進行了擴展 ,允許將向量視為堆棧。它提供了通常的push和pop操作,以及取堆棧頂點的peek方法、測試堆棧是否為空的empty方法、在堆棧中查找項并確定到堆棧頂距離的search方法。

java中關于Stack的實現其實非常的不妥當為什么?

首先因為棧的實現繼承了Vector,目的是為了復用方法,但是Vector的實現是基于數組的實現,而棧的使用場景大多是出棧入棧等插入或者刪除元素的操作,從設計上來講棧就不是用來做數據查詢之用,從底層數據結構的層面來說鏈表的方式更適合用來實現棧。

既然是棧(棧只能在棧頂添加或刪除元素),復用這種在指定位置添加元素的方法的意義何在?

所以Stack的實現是值得質疑的一件事情,如果我們要用棧的數據結構,可以選擇用LinkedList來實現,或者用Deque也可以,效率高,接口設計也比較的完美


看一下Stack的集成關系

2:Stack方法介紹


3:Stack代碼示例


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,758評論 18 399
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,360評論 11 349
  • 面向對象主要針對面向過程。 面向過程的基本單元是函數。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,088評論 0 4
  • 今天是立冬了,都說立冬吃餃子下午休了半天班,直接去買肉買菜包餃子,剛想要包呢,同事打電話有事讓過去,包餃子的計劃也...
    云軒媽媽閱讀 130評論 0 0
  • 多年以前,40歲對我來講是個遙不可及的年齡,如今,我已不敢再怠慢時間了,因為它就像個刺客,不知何時會突然來到你的面...
    普羅旺斯小瑞閱讀 729評論 0 1