Java中的Stack

Stack

Stack是一种先进后出的数据结构:只能往堆栈(Stack)最后压入(push)元素,最后进去的必须最早弹出(pop)来。
Java中Stack的主要方法:
• 把元素压栈:push(E)
• 把栈顶的元素“弹出”:pop()
• 取栈顶元素但不弹出:peek()

Java中Stack的作用

  1. JVM调用方法时,会创建调用栈,每调用一个方法时,先将参数压栈,然后执行对应的方法;当方法返回时,返回值压栈,调用方法通过出栈操作获得方法返回值。
  2. 对整数进制转换时,依次除法运算,先将每次余数代表的进制码压栈,最后依次弹出,则为转换后结果。
  3. 在计算带括号的数学表达式时,利用堆栈把中缀表达式转换为后缀表达式,利用堆栈通过后缀表达式计算结果。

使用

利用Stack原理将整数转换为16进制数:

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();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容