java中List遍历的同时删除元素
时间: 2023-03-27 08:04:44 浏览: 129
可以使用迭代器的remove方法来删除元素,避免在遍历时出现ConcurrentModificationException异常。具体实现可以参考以下代码:
List<String> list = new ArrayList<>();
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String str = iterator.next();
if (str.equals("要删除的元素")) {
iterator.remove();
}
}
相关问题
java list 遍历删除元素
在Java中,你可以使用多种方法遍历并删除List中的元素。以下是几种常见的方法:
1. 使用for循环顺序遍历删除:
```java
for(int i = 0, len = list.size(); i < len; i++){
if(list.get(i) == 1){
list.remove(i);
len--;
i--;
}
}
```
2. 使用for循环反向遍历删除:
```java
for(int i = size - 1; i >= 0; i--){
String item = list.get(i);
if(target.equals(item)){
list.remove(item);
}
}
```
3. 使用CopyOnWriteArrayList遍历删除:
```java
CopyOnWriteArrayList<String> cowList = new CopyOnWriteArrayList<String>(list);
for (String item : cowList) {
if (item.equals("1")) {
cowList.remove(item);
}
}
```
4. 使用Iterator迭代器删除:
```java
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
int i = iterator.next();
if(i == 1){
iterator.remove();
}
}
```
5. 使用lambda表达式删除列表元素(推荐):
```java
list.removeIf(a -> "1".equals(a));
```
6. 使用方法引用删除列表元素:
```java
public static Boolean removeA(String s) {
return "a".equals(s);
}
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.removeIf(AccountOperationController::removeA);
}
```
java遍历list集合删除元素
可以使用迭代器来遍历list集合并删除元素,代码如下:
```
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("要删除的元素")) {
iterator.remove();
}
}
```
其中,`list`是要遍历的list集合,`"要删除的元素"`是要删除的元素的值。
阅读全文