Java中removeLast方法实现求助:无法正确移除ArrayList最后元素
问题解决与说明
一、“列表为空时方法不执行任何操作”的具体含义
当传入的ArrayList是空的(即strings.size() == 0),你的方法需要满足:
- 不能调用任何会触发异常的修改操作(比如直接调用
remove),否则会抛出IndexOutOfBoundsException - 方法执行后,空列表依然保持为空状态,不会产生任何异常或额外行为
二、测试报错原因与修正方案
你收到的报错removeLast method should remove the last element of the list,说明代码没有正确定位到最后一个元素(比如误写为remove(0)移除第一个元素)。
正确的实现代码如下:
import java.util.ArrayList; public class YourClass { public static void removeLast(ArrayList<String> strings) { // 先判断列表非空,再执行移除操作 if (!strings.isEmpty()) { // 最后一个元素的索引为列表长度减1,动态适配列表实时长度 strings.remove(strings.size() - 1); } // 列表为空时,方法直接结束,无任何操作 } }
关键细节:
strings.isEmpty():比size() == 0更直观高效的空列表判断方式strings.size() - 1:ArrayList索引从0开始,最后一个元素的索引永远等于当前列表长度减1,确保每次都精准移除最后一个元素
内容的提问来源于stack exchange,提问作者belinyom
相关产品推荐
相关产品推荐

