数据结构是通用的,就是遵循数据的“先进后出”原则,很简单。
一些Stack类中的方法比如:push(),pop()等常用的自己学习一下,简单的应用就水到渠成了,检验一下容易在细节上出错的地方。
还有建议学习一下static的用法意义,在下也是java菜鸟就不多做介绍了。
import java.util.*;
public class Main{
static void showpush(Stack st,int a){
st.push(a);
System.out.println("Push ("+a+")");
System.out.println("Stack:"+st);
}
static void showpop(Stack st){
System.out.print("pop ->");//用print不换行
int u = (Integer)st.pop();//不加Integer会报错Object无法转化为int,小度说Object类是所有封装类的父类,
//在接收一个不确定什么类型的的值时,就可以使用Object作为一个笼统类
System.out.println(u); //用println换行,另外用printf()可以控制输出格式,更加格式化些,适合复杂的输出。
System.out.println("Stack:"+st);
}
public static void main(String []args){
Stack st = new Stack();
System.out.println("Stack:"+st);
showpush(st, 42);
showpush(st, 50);
showpush(st, 60);
showpop(st);
showpop(st);
showpop(st);
try{ //异常保护机制,如果出现异常的话,不至于程序直接崩溃,而是把异常
showpop(st);//储存到Exception里,所以catch是用来提取异常信息的
}catch(Exception e){
System.out.println("Empty Stack");//可以再加个println把异常打印出来
}
}
}
程序输出:
run:
Stack:[]
Push (42)
Stack:[42]
Push (50)
Stack:[42, 50]
Push (60)
Stack:[42, 50, 60]
pop ->60
Stack:[42, 50]
pop ->50
Stack:[42]
pop ->42
Stack:[]
pop ->Empty Stack
成功构建 (总时间: 0 秒)