【发布时间】:2015-10-31 01:39:38
【问题描述】:
我正在尝试编写从ArrayList 中删除所有电影的代码,将其清空,以便以后可以将更多电影放入其中。
我将从代码开始:
for(int index = 0; index < movies.size(); index++){
removeMovie(movies, movies.get(index));
}
每次循环运行时,index 都会增加,movies.size() 应该会减少。我需要保持movies.size() 一致,同时仍代表原始ArrayList 大小。所以,我希望它像“index
这是我刚刚尝试过的:
int tempMovieSize = movies.size();
for(int index = 0; index < tempMovieSize; index++){
removeMovie(movies, movies.get(index));
tempMovieSize += 1;
}
这不起作用,因为我遇到了一个 outofbounds 异常。它应该保持tempMovieSize 的大小。 (它减一是因为移除了一个电影对象,然后加一,将其抵消并保持在原始值(在本例中为 8)。)
【问题讨论】:
-
不,你没有。要么运行循环,直到
movies.size()为0,始终删除第一个元素,或者更好的是,使用Iterator并且它是remove功能 -
你过于复杂了。它不会在每次循环时计算
tempMovieSize。