程序目的:从List对象commonGroups中去除与parentGroups数组中id相同的对象。代码如下:
for (int i = 0; i < parentGroups.length; i++) {
for (int j = 0; j Group group = (Group) commonGroups.get(i);
if (parentGroups[i].equals(group.getId())) {
commonGroups.remove(group);
}
}
}
这是一个很简单的两层循环,乍看没有任何问题,可是程序结果总是不对。问题在什么地方呢?
请注意commonGroups.remove(group);这一段,由于commonGroups.size() 是循环计数点,每次执行romove后,size()的大小就改变了。因此,问题就出来了。
这种情况很常见,可惜今天我又犯了这样的错误。切记,切忌啊。