`
周一Monday
  • 浏览: 346023 次
  • 来自: 北京
社区版块
存档分类
最新评论

关于List集合的删除问题

阅读更多

一般来说在遍历一个List集合的时候,是不能同时执行删除操作的。

会抛出

java.util.ConcurrentModificationException

当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。

但是,有的时候就需要删除操作。

 

举个例子,备份用的。

 

package demo;

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

public class Main {

	/** 目标:删除cccpppppppppppp之前的记录 */
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("aaa");
		list.add("bbb");
		list.add("111");
		list.add("222");
		list.add("333");
		list.add("cccpppppppppppp");
		list.add("999");
		list.add("888");
		list.add("777");

		int c_index = -1; // 保存cccpppppppppppp第一次出现的位置

		// 取得cccpppppppppppp第一次出现的位置
		for (int i = 0; i < list.size(); i++) {
			String str = list.get(i);
			if (str.startsWith("ccc")) {
				c_index = i;
				break;  //不要省
			}
		}

		// 删除cccpppppppppppp之前的记录
		for (int j = list.size() - 1; j >= 0; j--) {
			if (j < c_index) {
				list.remove(j); // list.remove(list.get(j));
				// c_index--;
			}
		}
		System.out.println(list);
	}
}

  

分享到:
评论

相关推荐

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

    在C#编程中,List&lt;T&gt; 是一个常用的集合类,用于存储同类型的对象数组。当我们需要遍历List并根据条件删除特定元素时,需要注意正确的方法,以避免在遍历过程中出现错误。以下将详细介绍如何在C#中遍历List并删除元素...

    两个集合比较(新增、编辑、删除)

    在IT领域,集合比较是一...通过理解并熟练运用这些方法,我们可以有效地比较和操作两个List集合,无论是查找新增、编辑还是删除的元素。在实际项目中,这种能力对于数据同步、日志分析、版本控制等多个场景都至关重要。

    C#List集合分组winform把List分组

    标题"**C# List集合分组WinForm把List分组**"涉及到的关键知识点是C#中的List集合以及如何利用Linq进行数据分组。在WinForm应用中,数据分组通常是为了更好地展示或操作数据,例如在控件如DataGridView中进行数据...

    Java List集合的应用.rar

    在这个“Java List集合的应用.rar”压缩包中,我们可以预见到一系列关于如何在实际场景中使用List集合的实例,例如学生管理系统中的注册、登录和日志管理等常见功能。 首先,让我们深入了解一下Java List集合的基础...

    List集合遍历和删除操作

    List集合遍历和删除操作

    redis存储List集合

    标题中的“redis存储List集合”指的是使用Redis数据库来存储列表数据结构。Redis是一个开源的、高性能的键值存储系统,支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。在这个示例中,重点是利用Redis...

    hibernate list集合映射

    **标题:“Hibernate List集合映射”** 在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。List集合映射是其中常见的一种方式,它允许我们将数据库中的一组相关记录映射到...

    sp缓存list集合工具类

    4. **更新List缓存**:如果list集合有更新,先删除旧的缓存,再保存新的list。 这样的工具类可以极大地简化开发者的工作,提高代码的复用性和可维护性。同时,对于数据量不是特别大的list集合,这种方式能够有效...

    C#List字典Dictionary泛型集合实例,源码

    在.NET框架中,C#语言提供了丰富的数据结构和容器,其中最常用且强大的就是List、Dictionary和HashSet等泛型集合。这些集合类是基于泛型的,能够提供类型安全的数据存储,大大增强了代码的可读性和效率。接下来,...

    易语言仿java集合 list map源码

    本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...

    6种方法初始化JAVA中的list集合

    在Java编程中,List集合是开发人员经常使用的一种数据结构,用于存储有序的元素列表。本文将详细介绍6种初始化Java List集合的方法,并通过代码示例帮助理解每种方法的使用和特点。 1. 常规方式 这是最常见的初始化...

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

    解决JAVA遍历List集合删除数据时出现的问题 JAVA 中遍历List集合时删除数据出现的问题是很多开发者经常遇到的问题,本文对该问题进行了详细的讲解,总结了多种解决方法,并对问题的原因进行了深入分析。 问题描述...

    javalist.zip_list集合 java

    "javalist.zip_list集合 java"这个标题暗示我们将探讨Java中的List集合以及它的应用。描述中提到“java中集合list的应用非常重要”,这确实不假,因为List在处理有序数据时具有广泛的应用场景。 List接口位于java....

    LIST集合.pdf

    标题中的"LIST集合.pdf"指的是Java编程语言中的List接口,它是Java集合框架的重要组成部分,用于存储有序的元素序列。List接口扩展了Collection接口,并引入了一些特有的方法,如add(E element)用于添加元素,get...

    集合类(二):List集合

    在Java编程语言中,集合框架是处理对象集合的重要工具,其中List集合是广泛使用的接口之一。List接口继承自Collection接口,它定义了一种有序的、允许重复元素的集合。本篇我们将深入探讨List集合,包括其特点、常用...

    C 语言通用 List 集合.zip

    接下来,我们需要为List集合实现基本的操作函数,如初始化、添加元素、删除元素、查找元素、遍历等。 1. **初始化List**: 使用`malloc`分配内存并设置初始容量,例如初始化为0。 2. **添加元素**: 当添加元素...

    java遍历list集合.zip

    在Java编程中,List集合是Java集合框架的重要组成部分,它是一种有序的集合,可以包含重复元素。本资料主要探讨如何遍历Java中的List集合,包括基本的迭代器方式、增强for循环(foreach)以及流(Stream)API的使用...

    JavaSE专题-List集合.doc

    【JavaSE专题-List集合】 Java集合框架是Java API的核心组件之一,主要用于存储和操作对象。List集合是其中的一个重要接口,它代表了一个有序的、允许元素重复的序列。List接口扩展了Collection接口,提供了更丰富...

    Java集合面试问题

    根据给定文件的信息,我们可以提炼出以下关于Java集合的关键知识点: ### 1. Java集合概述与常见类 Java集合框架是Java平台的核心组件之一,它为开发者提供了多种数据结构来存储和操作对象集合。Java集合主要包括...

Global site tag (gtag.js) - Google Analytics