您的位置:首页 > 编程语言 > Java开发

java Stack 类 (栈)

2016-03-28 20:29 429 查看
主要测试了一下“栈“的特点“先进后出”,测试如下:

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)

如有错误,还请指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java Stack 堆栈 测试