【发布时间】:2015-03-31 19:10:30
【问题描述】:
我正在尝试在 Java 中创建一个堆栈,该堆栈使用数组来实现。下面是我自定义的栈类中的pop()方法
public E pop()
{
if(data.length == 0)
{
throw new EmptyStackException();
}
E poppedObject = data[0];
for(int i = 0; i < data.length-1; i++) //Moving all the elements one closer to top
{
data[i] = data[i+1];
}
return poppedObject;
}
当所有数据都从堆栈中弹出并且您尝试从中弹出一些内容时,应该抛出 EmptyStackException。但是, data.length 不会随着对象的弹出而改变。如果不能用 data.length 判断,pop 方法应该如何判断堆栈是否为空?
【问题讨论】:
-
假设你有一个 kitkat,里面有 4 个巧克力棒。当你吃一个kit kat bar时,包装的大小会改变还是kit kat bar的数量会改变?