java 如何在遍历中删除集合项
时间: 2023-06-08 21:03:50 浏览: 52
对于这个问题,可以使用迭代器 Iterator 来遍历集合,然后使用 Iterator 的 remove() 方法来删除集合项。具体操作步骤如下:
1. 获取集合的迭代器对象,即调用集合的 iterator() 方法。
2. 使用 while 循环遍历集合,循环条件为迭代器对象的 hasNext() 方法。
3. 在循环中,使用迭代器对象的 next() 方法获取当前元素,并进行相应的处理。
4. 如果需要删除该元素,使用迭代器对象的 remove() 方法来删除。
注意:不能使用集合本身的 remove() 方法来删除元素,否则会引发 ConcurrentModificationException 异常。因为在遍历过程中,修改了集合的结构会导致遍历失败。
示例代码如下:
```java
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (需要删除的条件) {
iterator.remove();
}
}
```
相关问题
如何在java中遍历list集合时修改当前元素
在 Java 中,我们可以使用 ListIterator 来遍历 List 集合并修改其中的元素。ListIterator 是一个可以双向移动的迭代器,可以在迭代过程中添加、删除、修改元素,而且对于 ArrayList 和 LinkedList 这两种集合类都适用。
下面是一个例子,展示如何使用 ListIterator 遍历 List 并修改其中的元素:
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
String current = iterator.next();
if (current.equals("banana")) {
iterator.set("grape");
}
}
System.out.println(list);
```
输出结果为:`[apple, grape, orange]`。在上面的例子中,我们遍历了 List 集合并查找到了值为 "banana" 的元素,然后使用 `iterator.set()` 方法将其修改为 "grape"。最终打印出修改后的 List 集合。
java如何遍历set集合
在 Java 中,Set 是一个不允许重复元素的集合。可以使用迭代器或 foreach 循环遍历 Set。以下是两种方法:
1. 使用迭代器遍历 Set:
```java
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("orange");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}
```
2. 使用 foreach 循环遍历 Set:
```java
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("orange");
for (String item : set) {
System.out.println(item);
}
```
这两种方法都可以遍历 Set 集合。如果需要删除元素,则必须使用迭代器的 `remove()` 方法。