`

List如何一边遍历,一边删除?

阅读更多

主要有以下3种方法:

  1. 使用Iterator的remove()方法
  2. 使用for循环正序遍历
  3. 使用for循环倒序遍历

1. 使用Iterator的remove()方法

 

public static void main(String[] args) {
    List<String> platformList = new ArrayList<>();
    platformList.add("博客园");
    platformList.add("CSDN");
    platformList.add("掘金");

    Iterator<String> iterator = platformList.iterator();
    while (iterator.hasNext()) {
        String platform = iterator.next();
        if (platform.equals("博客园")) {
            iterator.remove();
        }
    }

    System.out.println(platformList);
}

 每次删除一个元素,都会将modCount的值重新赋值给expectedModCount,这样2个变量就相等了,不会触发java.util.ConcurrentModificationException异常。

2. 使用for循环正序遍历

public static void main(String[] args) {
    List<String> platformList = new ArrayList<>();
    platformList.add("博客园");
    platformList.add("CSDN");
    platformList.add("掘金");

    for (int i = 0; i < platformList.size(); i++) {
        String item = platformList.get(i);

        if (item.equals("博客园")) {
            platformList.remove(i);
            i = i - 1;
        }
    }

    System.out.println(platformList);
}

 

3. 使用for循环倒序遍历

public static void main(String[] args) {
    List<String> platformList = new ArrayList<>();
    platformList.add("博客园");
    platformList.add("CSDN");
    platformList.add("掘金");

    for (int i = platformList.size() - 1; i >= 0; i--) {
        String item = platformList.get(i);

        if (item.equals("掘金")) {
            platformList.remove(i);
        }
    }

    System.out.println(platformList);
}

 

 

 

分享到:
评论

相关推荐

    【Java面试题】List如何一边遍历,一边删除?

    在Java编程中,遍历并删除List集合是一个常见的操作,但在实际编程中,如果不使用正确的方法,可能会导致`java.util.ConcurrentModificationException`异常。本文主要针对这个面试题,详细讲解如何在遍历List的同时...

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

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

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

    本篇文章主要探讨的是在使用STL list时遇到的遍历删除元素过程中常见的错误及其解决方案。 错误用法通常出现在尝试同时遍历和删除list中的元素时。以下是三种常见的错误做法: 1. 错误用法一: 在这个例子中,迭代...

    std::List类的遍历获得元素的操作二法

    但是,`std::list`提供了迭代器接口,我们可以利用迭代器来遍历并访问容器中的每个元素。以下是两种遍历`std::list`并获取其元素的方法。 ### 方法一:迭代器遍历 在C++中,迭代器是访问容器内元素的指针类似对象...

    List集合遍历和删除操作

    List集合遍历和删除操作

    Freemarker中遍历list集合实例

    本实例将详细介绍如何在Freemarker中遍历list集合,帮助你理解和应用这一核心功能。 在Freemarker中,遍历list集合主要依赖于`&lt;#list&gt;`指令。当你有一个Java对象,例如一个ArrayList或LinkedList,这些对象在...

    list遍历集合源码

    为了遍历List,Java提供了一种迭代器(Iterator)的方式。ListIterator是Iterator的子接口,专为List设计,除了基本的`hasNext()`和`next()`方法外,还提供了`previous()`,`nextIndex()`和`previousIndex()`等方法,...

    免费下载 CheckBoxList遍历 方法

    在本篇文章中,我们将深入探讨如何在ASP.NET Web Forms中使用CheckBoxList控件,并通过一个具体示例来学习如何遍历CheckBoxList中的项并获取已选中的值。此过程不仅适用于免费下载场景,而且对于任何需要处理用户...

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

    本测试着重关注四种常见的集合类型:ArrayList、Dictionary, TValue&gt;、List以及DataSet,它们各自在遍历性能上的差异。遍历性能是衡量代码执行效率的重要指标,尤其在大数据量处理时,高效的遍历方法能显著提升程序...

    关于List集合特有的迭代器的反向遍历

    Listiterator迭代器的方向遍历,在反向遍历时 源码中 index中的初值需要在定义的时候传入size集合长度 或者通过正向遍历,将nextIndex的值变为集合的长度 然后public boolean hasPrevious() { return nextIndex &gt; 0...

    java List集合遍历测试

    java List集合遍历测试 两个List,list1和list2.

    c标签遍历集合嵌套的List集合

    ### c标签遍历集合嵌套的List集合 在Java Web开发中,经常需要处理复杂的集合数据结构,并将其展示到前端页面上。对于嵌套的集合(例如:List中包含List),使用`c`标签库(JSTL)进行遍历是一种常见的做法。本文将...

    FreeMarker 遍历list

    在FreeMarker中,遍历`List&lt;Map&lt;String&gt;&gt;`是常见的操作,尤其在处理从后端传来的复杂数据结构时。这篇博客链接虽然无法直接访问,但从标题来看,我们可以推测其内容可能涉及如何在FreeMarker模板中遍历一个包含Map...

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

    HashMap和List遍历方法及如何遍历删除元素总结 HashMap和List都是Java中最常用的数据结构,它们都可以用来存储和操作数据。然而,在遍历和删除元素时,需要小心地处理,以免出现问题。下面总结了HashMap和List的...

    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_...

    遍历目录下所有的文件_遍历文件夹文件_java遍历目录下所有文件_

    如果你需要对每个文件或子目录进行进一步的操作,如读取、删除或重命名,`listFiles()`是更好的选择。 3. **递归遍历**:如果目录中还有子目录,我们需要递归地遍历它们。通常,我们会创建一个递归函数,当遇到子...

    jquery获得单选框和下拉框的值,java日期处理,遍历list,遍历map

    - **解析**:这里使用传统的`for`循环来遍历`List`中的每个元素。 2. **遍历 Map:** - **使用 keySet():** ```java Set&lt;String&gt; key = cxDayMap.keySet(); for (Iterator it = key.iterator(); it....

    Java list利用遍历进行删除操作3种方法解析

    Java list利用遍历进行删除操作3种方法解析 Java list 是一种常用的数据结构,经常被用来存储和操作数据。在 Java 中,对 list 进行遍历和删除操作是一种常见的需求。本文将介绍 Java list 利用遍历进行删除操作的 ...

    Struts2 iterator 标签遍历 Map,List,数组(三十六)

    在Struts2中,`iterator`标签是用于遍历集合数据的重要工具,它可以用来迭代Map、List和数组等数据结构,以便在视图层进行展示。本篇文章将深入探讨`iterator`标签在遍历这些数据类型时的具体用法。 首先,我们来看...

Global site tag (gtag.js) - Google Analytics