Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java list遍历删除

作者:风中孤狼   发布日期:2026-03-01   浏览:116

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTraversalAndRemoval {
    public static void main(String[] args) {
        // 创建一个列表并添加一些元素
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        list.add("grape");

        // 方法1: 使用 Iterator 遍历并删除元素
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String fruit = iterator.next();
            if (fruit.equals("banana")) {
                iterator.remove(); // 注意:只能使用 iterator.remove() 来安全地删除元素
            }
        }

        // 方法2: 使用 for-each 循环(不推荐用于删除操作)
        // for (String fruit : list) {
        //     if (fruit.equals("orange")) {
        //         list.remove(fruit); // 这会导致 ConcurrentModificationException 异常
        //     }
        // }

        // 方法3: 使用增强 for 循环的替代方案 - 倒序遍历
        for (int i = list.size() - 1; i >= 0; i--) {
            if (list.get(i).equals("grape")) {
                list.remove(i); // 倒序遍历可以避免索引越界问题
            }
        }

        // 输出最终的列表内容
        System.out.println(list);
    }
}

解释说明:

  1. Iterator 遍历删除:这是最安全的方式,使用 Iteratorremove() 方法可以在遍历过程中安全地删除元素。直接调用 list.remove() 在遍历中会导致 ConcurrentModificationException 异常。

  2. for-each 循环删除:这种方式在遍历时删除元素是不安全的,会导致 ConcurrentModificationException 异常。因此不推荐在遍历过程中使用 list.remove()

  3. 倒序遍历删除:通过倒序遍历列表并删除元素,可以避免索引越界的问题。这种方法适用于需要在遍历过程中删除元素的场景。

以上代码展示了三种常见的遍历和删除方式,并解释了每种方式的优缺点。

上一篇:java基本数据类型有哪八种

下一篇:java hashmap初始化

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站