您的位置:首页 > 其它

遍历List的同时清空元素

2017-03-29 18:29 225 查看
今天调试代码的时候发现之前同事写的一段代码用于清空list集合的数据。

if(list !=null && !list.isEmpty()){
for (int i=0;i<=list.size();i++) {
list.remove(i);
}
}细心的童鞋们可以一眼就看出了问题。
当时我改成list.size()-1 或者i<list.size(),  以为万事大吉了~~~~~~~~~~

正要提交代码时,突然灵机一动感觉不对啊。大家思考下问题在哪里呢。。。。。。。

问题在: i++ 在增加,list的大小在减少,会出现数组越界异常的(这里可以我表达不太恰当,反正是有错误)。

然后我就改:

if(list !=null && !list.isEmpty()){
int a = list.size();
for (int i=0;i<=a-1;i++) {
if(list.isEmpty()){
break;
}
list.remove(i);
i--;
}
}

i++ 然后在i-- 这个吃饱了没事干嘛,再优化一下:
if(list !=null && !list.isEmpty()){
for (int i=0;i<=list.size()-1;) {
list.remove(i);
}
}哈哈哈这下看是完美了。
====================================================

其实list.clear() 直接就搞定了。

心得:其实程序是慢慢调试出来,慢慢优化出来的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: