Java 实现堆栈<;E>;使用向量<;E>;
我正在以以下方式使用堆栈。。。我在第26行遇到了问题:Java 实现堆栈<;E>;使用向量<;E>;,java,vector,stack,Java,Vector,Stack,我正在以以下方式使用堆栈。。。我在第26行遇到了问题: import java.util.Vector; public class Stack<E> { private Vector <E> v=new Vector <E>(1); public int getSize() { return v.size(); } public boolean isEmpty() { return (v.is
import java.util.Vector;
public class Stack<E> {
private Vector <E> v=new Vector <E>(1);
public int getSize() {
return v.size();
}
public boolean isEmpty() {
return (v.isEmpty());
}
public E getTop() {
return v.lastElement();
}
public E pop() {
E p;
if (!isEmpty()) {
p = v.lastElement();
v.remove(v.size() - 1);
}
/*return p; what to do here?? when stack is empty how to return and what to?* /
}
public void push(E p) {
v.add(p);
}
}
import java.util.Vector;
公共类堆栈{
私有向量v=新向量(1);
公共int getSize(){
返回v.size();
}
公共布尔值为空(){
返回(v.isEmpty());
}
公共E getTop(){
返回v.lastElement();
}
公共E-pop(){
E-p;
如果(!isEmpty()){
p=v.lastElement();
v、 移除(v.尺寸()-1);
}
/*返回p;在这里做什么??当堆栈为空时,如何返回以及返回什么?*/
}
公共无效推送(EP){
v、 加(p);
}
}
一种方法是返回null,尽管不是真正建议的:
public E pop() {
E p = null;
if (!isEmpty()) {
p = v.lastElement();
v.remove(v.size() - 1);
}
return p;
如果您可以为堆栈中要使用的类型提供一个默认构造函数,以便以后可以检查对象是否有效,那就更好了
E p = new E(); // invalid object
您可能想查看提供了更多信息的。如果不是关于为堆栈使用自己的实现,您可以使用java.util.Stack-如果您想从空堆栈中弹出,此实现将抛出java.util.EmptyStackException。