gpt4 book ai didi

java - java中的堆栈比较

转载 作者:行者123 更新时间:2023-12-01 21:21:38 25 4
gpt4 key购买 nike

    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();
}



}
<小时/>

我无法检测为什么这个线程在“main”线程中给出异常

java.util.NoSuchElementException at java.util.Vector.lastElement(Vector.java:503)

由于代码 s.pop() 是该异常的原因,但如果我使用 s.isEmpty(),这怎么可能。

最佳答案

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

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

for (int i=1;i<str_arry.length;i++) {
if (s.isEmpty()) break; // Or some other way to handle it.

if (s.lastElement().equals(...) {
s.push(...);
} else {
s.pop();
}
}

关于java - java中的堆栈比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39059299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com