我试图从数组列表中删除最后一个元素,但这里的 pop() 方法没有按我想要的方式工作。我该如何更改代码?
public String pop(){
String last;
if (stringList.size() == 0){
return null;
} else {
last = stringList.get(stringList.size()-1);
return last;
stringList.remove(stringList.size() - 1); //This is giving me error!
}
}
return stringList.remove(stringList.size() - 1);
其余部分可以删除,因为
remove
返回删除的项目。
return
语句后面的代码永远无法执行。
Return 语句应该放在最后,因为编译器假定 return 语句之后没有任何内容,并且可能会显示 unreachable statements
return
语句之后的任何语句都将不可访问(无法访问的代码错误)。 return
语句通常应该是您希望在 method() 中执行的最后一个语句。
冒出在
return
上方给出错误的语句,代码应该可以正常工作。
stringList.remove(stringList.size() - 1); //goes above the return
return last;
因为您在
return last;
之前执行 stringList.remove(stringList.size() - 1);
语句,并且 return 语句之后的任何语句都不会执行。
修改后的代码:
else {
last = stringList.get(stringList.size()-1);
stringList.remove(stringList.size() - 1); //Now it wont give any error!
return last;
}
List#getLast
& List#removeLast
在 Java 21+ 中,
List
是 SequencedCollection
。请参阅JEP 431:排序集合。
所以现在
List
提供了getLast
和removeLast
等便捷方法。
String lastString = myStringList.getLast() ;
myStringList.removeLast() ;