我有以下代码部分来初始化堆栈数组:
vDec.setRoute(new Stack[vDec.getIndexes().length]);
for(i=0;i<vDec.getIndexes().length;i++){
vDec.getRoute()[i]=new Stack<>();
}
当我检查
java.util.EmptyStackException
循环内是否为空但不是之前,我得到while
。因此,对于这一部分:if(vDec.getRoute()[(int)IndexVeh.peek()].isEmpty()){
System.out.println("it works");
}
while((cDec.getVisitedBy()[crtCust]==-1)&&(!Distance.empty())){
if(vDec.getRoute()[(int)IndexVeh.peek()].isEmpty()){
do something
我首先得到输出
it works
,然后是异常。 最佳答案
在线上
if(vDec.getRoute()[(int)IndexVeh.peek()].isEmpty())
当且仅当执行该行时
EmptyStackException
为空时,您才会得到一个IndexVeh
。