java中的堆栈比较 for(int i=1;i

java中的堆栈比较 for(int i=1;i,java,data-structures,stack,Java,Data Structures,Stack,导致异常的不是s.pop():而是s.lastElement(),如堆栈跟踪中的java.util.Vector.lastElement所示。这意味着在调用s.lastElement()之前,您也必须检查s.isEmpty() 如果堆栈为空,则无法执行任何循环体:将检查移到外部: for(int i=1;i<str_arry.length;i++){ if(s.lastElement().equals(str_arry[i])){ s.p

导致异常的不是
s.pop()
:而是
s.lastElement()
,如堆栈跟踪中的
java.util.Vector.lastElement
所示。这意味着在调用
s.lastElement()
之前,您也必须检查
s.isEmpty()

如果堆栈为空,则无法执行任何循环体:将检查移到外部:

    for(int i=1;i<str_arry.length;i++){

        if(s.lastElement().equals(str_arry[i])){

            s.push(str_arry[i]);

        }
        else {
            if(!s.isEmpty()) s.pop();
        }



    }
for(int i=1;i导致异常的不是
s.pop()
:而是
s.lastElement()
,如堆栈跟踪中的
java.util.Vector.lastElement
所示。这意味着在调用
s.lastElement()
之前,您也必须检查
s.isEmpty()

如果堆栈为空,则无法执行任何循环体:将检查移到外部:

    for(int i=1;i<str_arry.length;i++){

        if(s.lastElement().equals(str_arry[i])){

            s.push(str_arry[i]);

        }
        else {
            if(!s.isEmpty()) s.pop();
        }



    }

for(int i=1;i因为引起它的不是
pop
:它是
s.lastElement()
,如堆栈跟踪中的
java.util.Vector.lastElement
所示。当错误消息显示“at
lastElement()
”时,为什么您认为它是
pop()
?此外,堆栈跟踪中的下一行将显示代码中的行号,它还将指向
if(s.lastElement().equals(str_arry[i])
行,而不是
if(!s.isEmpty())s.pop()
行。学习读取错误消息。因为不是
pop
导致它的:是
s.lastElement()
,如堆栈跟踪中的
java.util.Vector.lastElement
所示。当错误消息显示“at
lastElement()
”时,您为什么认为这是
pop()
?此外,堆栈跟踪中的下一行将显示代码中的行号,它也将指向
if(s.lastElement().equals)(str_arry[i]))
行,而不是
if(!s.isEmpty())s.pop()
行。学习阅读错误消息。