今天在写一段很简单的代码,本来以为肯定没什么问题,然后直接跑的时候,吆,简单的一个List的操作报错了。仔细一看代码,确实有问题,但是一般真的是如果稍微不小心就会犯下面这种愚蠢的操作。
这里我把代码贴出来:
然后第一时间觉得有问题,这种遍历然后删除的操作应该要使用迭代器。然后我修改后改成了下面代码:
结果一运行同样报错,哎吆,一不小心还是直接去删除List了,然后再次修改才没了问题。最后修改的代码如下:
这里我把代码贴出来:
public static void main(String[] args)
{
List<Integer> list = new ArrayList<>(1);
list.add(1);
for (Integer a : list)
{
if (a == 1)
{
list.remove(a);
}
}
list.forEach(System.out::println);
}
上面的代码报错,我贴错误出来:
然后第一时间觉得有问题,这种遍历然后删除的操作应该要使用迭代器。然后我修改后改成了下面代码:
public static void main(String[] args)
{
List<Integer> list = new ArrayList<>(1);
list.add(1);
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext())
{
Integer next = iterator.next();
if (next == 1)
{
list.remove(next);
}
}
list.forEach(System.out::println);
}
结果一运行同样报错,哎吆,一不小心还是直接去删除List了,然后再次修改才没了问题。最后修改的代码如下:
public static void main(String[] args)
{
List<Integer> list