黑马程序员技术交流社区
标题:
求大神解答ArrayList集合语句中一个变量的自增问题
[打印本页]
作者:
rick1991chen
时间:
2015-5-12 22:12
标题:
求大神解答ArrayList集合语句中一个变量的自增问题
本帖最后由 rick1991chen 于 2015-6-11 10:45 编辑
public static void removeElements(List<Integer> list)
{
int i = 0;
while (i<list.size())
{
if (list.get(i)%2 == 0)
{
list.remove(i);
}
else
i++;
}
}
复制代码
如上面的代码,为什么不在第6行的if语句内加上一个i++,用于遍历下一个集合中的元素;难道是remove()方法用了以后,会自动改变数组表的角标?
希望能有技术高手给解答!!!
作者:
rick1991chen
时间:
2015-5-16 00:06
当调用remove方法时,表中的数据被获取,并删除,下一个元素自动向上填补空出的位置,然后不用i++,在i角标的位置读到原本是i++角标位置的元素,所以不进行自增。
没人回答我,自己去找人问了!难道论坛都是水贴!?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2