java Stack 类 (栈)

主要测试了一下“栈“的特点“先进后出”,测试如下:

import java.util.Stack;
/**
 * 2016年3月28日20:18:18
 * @author G_F
 * Tip: Stack类的测试
 */
public class StackTest {
    //静态方法
    public static String getEmpty(Stack<String> stack) {
        //测试堆栈是否为空
        return (stack.empty())?"堆栈是空的" :"堆栈不是空的";
    }
    //程序主入口
    public static void main(String [] args) {

        Stack<String> stack = new Stack<String>();

        /*
        把项压入前
        输出结果为:堆栈是空的
        */
        System.out.println("把项压入前:" + getEmpty(stack)); 
        stack.push("我"); //入栈
        stack.push("的"); //入栈
        stack.push("手"); //入栈
        stack.push("让"); //入栈
        stack.push("你"); //入栈
        stack.push("牵"); //入栈

        /*
        把项压入后
        输出结果为:把项压入后:堆栈不是空的
        */
        System.out.println("把项压入后:" + getEmpty(stack)); 

        /*
        输出堆栈顶部的对象
        输出结果为:执行pop前的“栈顶”的对象是:牵
        */
        System.out.println("执行pop前的“栈顶”的对象是:" + stack.peek()); 

        /*
        输出对象在堆栈中的位置
        输出结果为:对象“手”在执行pop“前”的位置是:4
        */
        System.out.println("对象“手”在执行pop“前”的位置是:" + stack.search("手"));

       /*
        输出移除的堆栈顶部的对象(出栈)
        输出结果为:pop掉的对象是:牵
        */
        System.out.println("pop掉的对象是:" + stack.pop()); 

        /*
        输出对象在堆栈中的位置
        输出结果为:对象“手”在执行pop“后”的位置是:3
        */
        System.out.println("对象“手”在执行pop“后”的位置是:" + stack.search("手")); //

        /*
        输出堆栈顶部的对象
        输出结果为:执行pop后的“栈顶”的对象是:你
        */
        System.out.println("执行pop后的“栈顶”的对象是:" + stack.peek()); 
    }
}

画了两张图,来解释一下:
入栈流程

出栈流程

另外如果,全部出完栈后,如果再次pop的话会抛出“栈空”
java.util.EmptyStackException
at java.util.Stack.peek(Unknown Source)

如有错误,还请指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值