for (int j = 0; j < Employees.size(); j++) {
Employee el = (Employee) Employees.elementAt(j);
Employees.removeElementAt(j);
}
如上循环:假如size()为10的话,那么当j=6的时候,这时就会退出循环。因为j=6的时候.size()就为5了。因为每循环一次,就是删除一个子项。因为Employees.size随着你的子项的移除而改变的。
正确方法:
for (int j = 0; j < Employees.size(); j++) {
Employee el = (Employee) Employees.firstElement()//取第一项
Employees.removeElementAt(j);
}
本文探讨了在遍历Java集合时删除元素的问题,指出错误的做法可能导致的问题,并提供了一个正确的实现方式。
399

被折叠的 条评论
为什么被折叠?



