您的位置:首页 > 编程语言 > Java开发

Java-常见错误集锦

2016-05-26 14:39 417 查看
遍历时从列表里删除元素
1测试代码

2输出结果

3原因分析

1.遍历时,从列表里删除元素

1.1.测试代码:

/**
* 遍历时,从列表里删除元素
*/
private static void testListRemove() {
List<String> list = new ArrayList(Arrays.asList("a", "b", "c", "d"));
//错误姿势:使用for循环
try {
for (String s : list) {
if (s.equals("a"))
list.remove(s);
}
} catch (Exception e) {
e.printStackTrace();
}
//正确姿势:使用迭代器
Iterator<String> iter = list.iterator();
while (iter.hasNext()) {
String s = iter.next();
if (s.equals("a")) {
iter.remove();
}
}
System.out.println(JSON.toJSONString(list));
}


1.2.输出结果:



1.3.原因分析:

当一个元素被删除时,列表的指针改变了。所以想要在循环内利用指针删除多个元素是无法正常进行的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: