最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中使用數(shù)組實現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)實例

 更新時間:2015年01月15日 11:27:12   投稿:junjie  
這篇文章主要介紹了Java中使用數(shù)組實現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)實例,本文先是講解了實現(xiàn)棧至少應該包括以下幾個方法等知識,然后給出代碼實例,需要的朋友可以參考下

棧是Java語言中最重要的數(shù)據(jù)結(jié)構(gòu)之一,它的實現(xiàn),至少應該包括以下幾個方法:

1.pop() 出棧操作,彈出棧頂元素。
2.push(E e) 入棧操作
3.peek() 查看棧頂元素
4.isEmpty() 棧是否為空

另外,實現(xiàn)一個棧,還應該考慮到幾個問題:

1.棧的初始大小以及棧滿以后如何新增??臻g
2.對棧進行更新時需要進行同步

簡單示例,使用數(shù)組實現(xiàn)棧,代碼如下:

復制代碼 代碼如下:

public class Stack<E> { 

    // Java 不支持泛型數(shù)組,如需使用,請使用Java提供的容器 
    private Object[] stack; 

    // 棧的默認初始大小 
    private static final int INIT_SIZE = 2; 

    // 棧頂索引 
    private int index; 

    public Stack() { 
        stack = new Object[INIT_SIZE]; 
        index = -1; 
    } 

    /** 
     * 構(gòu)造方法 
     *  
     * @param initSize 
     *            棧的初始大小 
     */
    public Stack(int initSize) { 
        if (initSize < 0) { 
            throw new IllegalArgumentException(); 
        } 
        stack = new Object[initSize]; 
        index = -1; 
    } 

    /** 
     * 出棧操作 
     *  
     * @return 棧頂對象 
     */
    public synchronized E pop() { 
        if (!isEmpty()) { 
            E temp = peek(); 
            stack[index--] = null; 
            return temp; 
        } 
        return null; 
    } 

    /** 
     * 入棧操作 
     *  
     * @param obj 
     *            等待入棧的對象 
     */
    public synchronized void push(E obj) { 
        if (isFull()) { 
            Object[] temp = stack; 
            // 如果棧滿,則創(chuàng)建空間為當前??臻g兩倍的棧 
            stack = new Object[2 * stack.length]; 
            System.arraycopy(temp, 0, stack, 0, temp.length); 
        } 
        stack[++index] = obj; 
    } 

    /** 
     * 查看棧頂對象 
     *  
     * @return 棧頂對象 
     */
    public E peek() { 
        if (!isEmpty()) { 
            return (E) stack[index]; 
        } 
        return null; 
    } 

    /** 
     * 查看棧是否為空 
     *  
     * @return 如果棧為空返回true,否則返回false 
     */
    public boolean isEmpty() { 
        return index == -1; 
    } 

    /** 
     * 查看棧是否滿 
     *  
     * @return 如果棧滿返回true,否則返回false 
     */
    public boolean isFull() { 
        return index >= stack.length - 1; 
    } 
}

最后說明,Java中實現(xiàn)了棧(java.util.Stack)的數(shù)據(jù)結(jié)構(gòu),它是通過繼承Vector類實現(xiàn)的,一般情況下我們直接拿來用就行了。

相關文章

  • mybatis調(diào)用存儲過程,帶in、out參數(shù)問題

    mybatis調(diào)用存儲過程,帶in、out參數(shù)問題

    這篇文章主要介紹了mybatis調(diào)用存儲過程,帶in、out參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot集成本地緩存性能之王Caffeine示例詳解

    SpringBoot集成本地緩存性能之王Caffeine示例詳解

    這篇文章主要為大家介紹了SpringBoot集成本地緩存性能之王Caffeine的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Mybatis-plus 查詢條件為空不生效問題及解決

    Mybatis-plus 查詢條件為空不生效問題及解決

    這篇文章主要介紹了Mybatis-plus 查詢條件為空不生效問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 一步步教你JAVA如何優(yōu)化Elastic?Search

    一步步教你JAVA如何優(yōu)化Elastic?Search

    想要榨干Java操作Elasticsearch的所有性能潛力?本指南將一步步教你如何優(yōu)化Java與Elasticsearch的交互!從此,提升ES查詢速度、降低資源消耗不再是難題,趕快一起來探索Java?Elasticsearch優(yōu)化的秘訣吧!
    2024-01-01
  • SpringBoot 2.0 整合sharding-jdbc中間件實現(xiàn)數(shù)據(jù)分庫分表

    SpringBoot 2.0 整合sharding-jdbc中間件實現(xiàn)數(shù)據(jù)分庫分表

    這篇文章主要介紹了SpringBoot 2.0 整合sharding-jdbc中間件,實現(xiàn)數(shù)據(jù)分庫分表,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-06-06
  • Springboot jar文件如何打包zip在linux環(huán)境運行

    Springboot jar文件如何打包zip在linux環(huán)境運行

    這篇文章主要介紹了Springboot jar文件如何打包zip在linux環(huán)境運行,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java的Jackson庫的使用及其樹模型的入門學習教程

    Java的Jackson庫的使用及其樹模型的入門學習教程

    這篇文章主要介紹了Java的Jackson庫的使用及其樹模型入門學習教程,Jackson庫通常被用來作Java對象和JSON的互相轉(zhuǎn)換,需要的朋友可以參考下
    2016-01-01
  • Lucene?索引刪除策略源碼解析

    Lucene?索引刪除策略源碼解析

    這篇文章主要為大家介紹了Lucene?索引刪除策略源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Mybatis全局配置及映射關系的實現(xiàn)

    Mybatis全局配置及映射關系的實現(xiàn)

    本文主要介紹了Mybatis全局配置及映射關系的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 實時計算知多少?

    實時計算知多少?

    這篇文章對滑動窗口計數(shù)的概念和關鍵代碼做了較為詳細解釋,讓我們對實時計算這一概念有了更深的了解,需要的朋友可以參考下
    2015-07-07

最新評論

泽库县| 嘉兴市| 长沙市| 甘肃省| 凤山市| 福贡县| 临沭县| 西宁市| 旺苍县| 新闻| 新化县| 井陉县| 崇明县| 苍梧县| 务川| 西青区| 保康县| 德州市| 宜城市| 海阳市| 玉林市| 钟祥市| 辉县市| 舞钢市| 金坛市| 右玉县| 红河县| 余庆县| 察隅县| 衡阳市| 运城市| 中山市| 南京市| 印江| 全椒县| 裕民县| 新泰市| 化隆| 甘德县| 赤壁市| 岑巩县|