Java中的Stack

Stack

Stack是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu):只能往堆棧(Stack)最后壓入(push)元素,最后進(jìn)去的必須最早彈出(pop)來。
Java中Stack的主要方法:
? 把元素壓棧:push(E)
? 把棧頂?shù)脑亍皬棾觥保簆op()
? 取棧頂元素但不彈出:peek()

Java中Stack的作用

  1. JVM調(diào)用方法時,會創(chuàng)建調(diào)用棧,每調(diào)用一個方法時,先將參數(shù)壓棧,然后執(zhí)行對應(yīng)的方法;當(dāng)方法返回時,返回值壓棧,調(diào)用方法通過出棧操作獲得方法返回值。
  2. 對整數(shù)進(jìn)制轉(zhuǎn)換時,依次除法運算,先將每次余數(shù)代表的進(jìn)制碼壓棧,最后依次彈出,則為轉(zhuǎn)換后結(jié)果。
  3. 在計算帶括號的數(shù)學(xué)表達(dá)式時,利用堆棧把中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式,利用堆棧通過后綴表達(dá)式計算結(jié)果。

使用

利用Stack原理將整數(shù)轉(zhuǎn)換為16進(jìn)制數(shù):

import java.util.*;

public class Main {
    public static void main(String[] args) {
        int n = 12500;
        String hex = toHex(n);
        if (hex.equalsIgnoreCase("30D4")) {
            System.out.println("測試通過");
        } else {
            System.out.println("測試失敗");
        }
    }

    static String toHex(int n) {
        Stack<String> hexStack = new Stack<>();
        while (n != 0) {
            int xuShu = n % 16;
            hexStack.push("%x".formatted(xuShu));
            n = n / 16;
        }
        StringBuilder hexString = new StringBuilder();
        while (hexStack.size() > 0) {
            hexString.append(hexStack.pop());
        }
        return hexString.toString();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容