优化这段代码:for (Person item:personList) { if (item.getName().equals("Lily")){ personList.remove(item); } }
时间: 2024-02-14 07:13:16 浏览: 56
Android中的XML解析与文件生成
在foreach循环中使用`personList.remove()`方法删除元素是不安全的,可能会导致ConcurrentModificationException异常。因此,我们需要使用迭代器来删除元素。另外,如果我们只是想删除第一个名字为"Lily"的元素,可以在找到该元素后立即删除并退出循环,而不需要继续遍历整个列表。可以通过如下方式优化代码:
```java
Iterator<Person> iterator = personList.iterator();
while (iterator.hasNext()) {
Person item = iterator.next();
if (item.getName().equals("Lily")) {
iterator.remove();
break;
}
}
```
在这个优化版本中,我们使用了迭代器遍历集合,并使用`iterator.remove()`方法安全地删除元素。而且我们在找到第一个名字为"Lily"的元素后,立即使用`break`语句退出循环,避免了不必要的遍历操作。
阅读全文