`
eriol
  • 浏览: 408940 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

遍历List时删除元素

    博客分类:
  • Java
阅读更多

一般调用删除方法都是集合的方法,例如:

 

 

List list = new ArrayList();
list.add(...);
list.remove(...);
 

 

但是,如果在循环的过程中调用集合的remove()方法,就会导致循环出错,例如:

 

 

for(int i=0;i<list.size();i++){
    list.remove(...);
}
 

 

    由于List每次remove一个元素后,其后的元素都会向前移动,此时如果执行i++,则恰好跳过了后面的元素,所以导致了错误。

 

    所以,如果你想在循环语句中删除集合中的某个元素,就要用迭代器iterator的remove()方法,因为它的remove()方法不仅会删除元素,还会维护一个标志,用来记录目前是不是可删除状态,例如,你不能连续两次调用它的remove()方法,调用之前至少有一次next()方法的调用。 

 

for (Iterator it = list.iterator(); it.hasNext();) { 
    String str =  (String)it.next(); 
    if (str.equals("deleted")){ 
        it.remove(); 
    } 
}
 
分享到:
评论

相关推荐

    C#遍历List并删除某个元素的方法

    当我们需要遍历List并根据条件删除特定元素时,需要注意正确的方法,以避免在遍历过程中出现错误。以下将详细介绍如何在C#中遍历List并删除元素,包括正序和倒序遍历的技巧。 首先,我们来看一下错误的遍历方式。...

    C++ STL list 遍历删除出错解决方案

    错误用法通常出现在尝试同时遍历和删除list中的元素时。以下是三种常见的错误做法: 1. 错误用法一: 在这个例子中,迭代器`it`在调用`erase()`后未被更新,导致`it`成为了一个无效迭代器,因为`erase()`会使得迭代...

    C#在foreach遍历删除集合中元素的三种实现方法

    在foreach中删除元素时,每一次删除都会导致集合的大小和元素索引值发生变化,从而导致在foreach中删除元素时会抛出异常。 集合已修改;可能无法执行枚举操作。 方法一:采用for循环,并且从尾到头遍历 如果...

    HashMap和List遍历方法及如何遍历删除元素总结

    然而,在遍历和删除元素时,需要小心地处理,以免出现问题。下面总结了HashMap和List的遍历方法,以及如何遍历删除元素。 List的遍历方法 1. for循环遍历list 使用for循环遍历List是一种常见的方法,但是这种方法...

    java遍历list集合.zip

    通过索引遍历List集合也是一种常见方式,尤其当需要知道当前元素的索引时。 ```java for (int i = 0; i &lt; list.size(); i++) { String value = list.get(i); System.out.println("Element at index " + i + " is:...

    C# 集合对象遍历性能测试

    遍历List的时间复杂度与ArrayList相同,都是O(n),但由于类型安全,List通常被视为更优的选择。 最后,`DataSet`是.NET中用于存储和操作关系数据的复杂对象,它包含了多个DataTable。DataSet设计用于处理大量数据库...

    正确遍历删除List中的元素方法(推荐)

    总结,遍历删除List元素时,推荐使用Iterator,因为它提供了安全的遍历和修改集合的机制。对于仅删除一个元素的情况,可以使用增强的for循环配合`break`。然而,对于多元素删除,避免在增强的for循环中直接删除,...

    解决JAVA遍历List集合,删除数据时出现的问题

    在遍历List集合时,我们可以使用for循环来删除元素,但是我们需要注意的是,在删除元素后,我们需要将迭代变量i的值减1,以便在下一次迭代中处理正确的元素。 解决方法2:先删除后面的元素 另一种解决方法是,先...

    java中循环遍历删除List和Set集合中元素的方法(推荐)

    当尝试在循环内部删除元素时,Java的迭代机制无法处理这种行为,因此抛出`ConcurrentModificationException`。 **正确的遍历删除方式** 为了避免上述异常,有以下两种正确的方法来遍历并删除List和Set集合中的元素...

    解决Python 遍历字典时删除元素报异常的问题

    错误的代码① d = {'a':1, 'b':0, 'c':1, 'd':0} for key, val in d.items(): del(d[k]) 错误的代码② — 对于Python3 d = {'a':1, 'b':0, 'c':1, 'd':0} ...以上这篇解决Python 遍历字典时删除元素报异常的问

    Java如何在List或Map遍历过程中删除元素

    总结来说,在Java中遍历List或Map并删除元素时,应该避免在迭代过程中直接修改集合,而应该使用迭代器来管理删除操作。对于List,可以使用索引下标加调整索引,或者直接使用迭代器;对于Map,应根据需求选择键迭代或...

    Python简单遍历字典及删除元素的方法

    2. **get() 方法**:在访问字典元素时,使用`get()`方法可以避免KeyError,因为它允许提供默认值: ```python value = d.get('key', default_value) ``` 3. **update() 方法**:合并两个字典: ```python d1...

    java使用ListIterator对List遍历时添加修改删除​

    `ListIterator`还提供了在遍历过程中添加、修改和删除元素的功能,使得对列表的操作更加灵活。本文将详细介绍如何使用`ListIterator`进行这些操作。 ### 1. `ListIterator`的基本用法 要获取`List`的`ListIterator...

    java遍历list集合3种方式和性能对比

    在Java编程中,遍历List集合是常见的操作,有多种方式可以实现这一功能。下面将详细探讨三种遍历List集合的方法及其性能差异。 1. 使用`Iterator`遍历: ```java List list = new ArrayList(); // 添加元素 for ...

    Python中list循环遍历删除数据的正确方法

    初学Python,遇到过这样的问题,在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num_list)): if num_list[i] == 2: num_...

    list遍历的五种方法

    在 Java 编程中,遍历 List 集合是一项常见的任务,特别是在处理数据或执行迭代操作时。这里,我们详细探讨了五种遍历 List 集合的方法,并结合 List 接口概述来理解其核心特性。 1. **普通 for 循环遍历** 这是最...

    Iterator遍历过程中list删除导致异常

    当你想在迭代过程中删除元素时,应该使用`Iterator`的`remove()`方法,而不是直接调用集合的`remove()`方法。这样,`Iterator`会正确处理集合的内部状态,避免异常: ```java List&lt;String&gt; list = new ArrayList...

Global site tag (gtag.js) - Google Analytics