亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

另外,實(shí)現(xiàn)一個(gè)棧,還應(yīng)該考慮到幾個(gè)問(wèn)題:

1.棧的初始大小以及棧滿以后如何新增??臻g
2.對(duì)棧進(jìn)行更新時(shí)需要進(jìn)行同步

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

復(fù)制代碼 代碼如下:

public class Stack<E> { 

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

    // 棧的默認(rèn)初始大小 
    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 棧頂對(duì)象 
     */
    public synchronized E pop() { 
        if (!isEmpty()) { 
            E temp = peek(); 
            stack[index--] = null; 
            return temp; 
        } 
        return null; 
    } 

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

    /** 
     * 查看棧頂對(duì)象 
     *  
     * @return 棧頂對(duì)象 
     */
    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; 
    } 
}

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

相關(guān)文章

  • java對(duì)同一個(gè)文件進(jìn)行讀寫操作方法

    java對(duì)同一個(gè)文件進(jìn)行讀寫操作方法

    在本篇文章里我們給大家詳細(xì)講述了java對(duì)同一個(gè)文件進(jìn)行讀寫操作的方法和知識(shí)點(diǎn),需要的朋友們可以參考學(xué)習(xí)下。
    2018-10-10
  • java實(shí)現(xiàn)ATM取款項(xiàng)目

    java實(shí)現(xiàn)ATM取款項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)ATM取款項(xiàng)目的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Springboot獲取文件內(nèi)容如何將MultipartFile轉(zhuǎn)File

    Springboot獲取文件內(nèi)容如何將MultipartFile轉(zhuǎn)File

    本文給大家介紹Springboot獲取文件內(nèi)容,將MultipartFile轉(zhuǎn)File方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-01-01
  • Java使用poi導(dǎo)出ppt文件的實(shí)現(xiàn)代碼

    Java使用poi導(dǎo)出ppt文件的實(shí)現(xiàn)代碼

    Apache POI 是用Java編寫的免費(fèi)開源的跨平臺(tái)的 Java API,Apache POI提供API給Java對(duì)Microsoft Office格式檔案讀和寫的功能。本文給大家介紹Java使用poi導(dǎo)出ppt文件的實(shí)現(xiàn)代碼,需要的朋友參考下吧
    2021-06-06
  • java實(shí)現(xiàn)停車場(chǎng)系統(tǒng)

    java實(shí)現(xiàn)停車場(chǎng)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)停車場(chǎng)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Spring Boot + Mybatis 實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源案例分析

    Spring Boot + Mybatis 實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源案例分析

    這篇文章主要介紹了Spring Boot + Mybatis 實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源,需要的朋友可以參考下
    2018-11-11
  • spring在IoC容器中裝配Bean詳解

    spring在IoC容器中裝配Bean詳解

    這篇文章主要介紹了spring在IoC容器中裝配Bean詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Tomcat+Eclipse亂碼問(wèn)題解決方法與步驟

    Tomcat+Eclipse亂碼問(wèn)題解決方法與步驟

    亂碼問(wèn)題是大家在日常開發(fā)過(guò)程中經(jīng)常會(huì)遇到的問(wèn)題,由于各自環(huán)境的不同,解決起來(lái)也費(fèi)時(shí)費(fèi)力,本文主要介紹一般性亂碼問(wèn)題的解決方法與步驟,開發(fā)工具采用Eclipse+Tomcat,統(tǒng)一設(shè)置項(xiàng)目編碼UTF-8為例,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • JDK13的新特性之AppCDS詳解

    JDK13的新特性之AppCDS詳解

    AppCDS的全稱是Application Class-Data Sharing。主要是用來(lái)在不同的JVM中共享Class-Data信息,從而提升應(yīng)用程序的啟動(dòng)速度。這篇文章主要介紹了JDK13的新特性:AppCDS詳解,需要的朋友可以參考下
    2020-05-05
  • Java實(shí)現(xiàn)短信發(fā)送驗(yàn)證碼功能

    Java實(shí)現(xiàn)短信發(fā)送驗(yàn)證碼功能

    這篇文章主要介紹了Java實(shí)現(xiàn)短信發(fā)送驗(yàn)證碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-10-10

最新評(píng)論