关于java栈的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 16:26:26
我能不能用Integer.parseInt(s.peek())得到栈s的栈顶对象并且把它转换为int类型的,为什么我这样做了老是抛出异常,我的程序的部分代码是:if(!s.empty()&&Integer.parseInt(s.peek())-array[j]==1){
j++;
array[j]=Integer.parseInt(s.peek());
s.pop();
}
有什么更好的办法从把一个整型的数据存入栈,且随时取出也是一个整型的

看你报的异常是什么啊?
可以使用范型,Stack<Integer> s = new Stack<Integer>();
s.push(2);
Integer i = s.peek();
这样取出来就直接是Integer类型的。
当然也可以存入其他类型的取出来的时候强制转换下,不过你的转换应该有问题,如果不用范型,s.peek()返回的应该是Object类型,你需要先转换成String才能使用Integer.parseInt(),即Integer.parseInt(String.valueOf(s.peek()))

那你存进去是String 取出来的时候Integer.parseInt()一次不就可以了吗

这个很简单啊,用泛型就可以了。

如:
Stack<Integer> s=new Stack<Integer>;

虽然你用的是int,但可以通过自动装箱拆箱转换成Integer,你可以不用管的,用int就可以了,不会出错的