`
zhaobin87
  • 浏览: 77524 次
  • 来自: 深圳
社区版块
存档分类
最新评论

Java中ArrayList的remove方法

    博客分类:
  • Java
阅读更多

以后删除元素不敢用ArrayList中的remove了,不知道能出现神马样的后果,删除不干净哦。在for循环中连续remove ArrayList中的元素总是会删除不干净的。

import java.util.ArrayList;

public class ArrayListTest {
	public static void main(String[] args) {
		ArrayList<String> arrayList = new ArrayList<String>(100);
		//初始化元素0-9
		for (int i = 0; i < 10; i++) {
			arrayList.add(String.valueOf(i));
		}
		//删除整除2的元素并很笨的打印一些信息
		for (int i = 0; i < arrayList.size(); i++) {
			System.out.println("before if:\t" + i);
			if (Integer.valueOf(arrayList.get(i)).intValue() < 2
					|| Integer.valueOf(arrayList.get(i)).intValue() > 5) {
				System.out.println("befor remove\t" + i);
				System.out.println("removing:\t" + arrayList.remove(i));
				System.out.println("after remove:\t" + i);
			}
			System.out.println("after if:\t" + i);
		}

		System.out.println("*************************************");

		for (int i = 0; i < arrayList.size(); i++) {
			System.out.println(arrayList.get(i));
		}
	}
}

 

你看看结果哦,感觉运行步骤是蹦蹦跳跳滴。

before if:	0
befor remove	0
removing:	0
after remove:	0
after if:	0
before if:	1
after if:	1
before if:	2
after if:	2
before if:	3
after if:	3
before if:	4
after if:	4
before if:	5
befor remove	5
removing:	6
after remove:	5
after if:	5
before if:	6
befor remove	6
removing:	8
after remove:	6
after if:	6
*************************************
1
2
3
4
5
7
9

 谁能给我解释下这是为什么呢? 求解!!

分享到:
评论
4 楼 houlc 2013-05-06  
arrayList 第一次 remove 操作后,这个arrayList 本身的索引已经发生变化了。你还按照原来的索引去删,能不错嘛?
3 楼 pklimi 2012-02-08  
remove后size()返回的值已经变了
2 楼 zhaobin87 2011-10-27  
oppal 写道
试试iterator

我知道用iterator过滤,但是为什么出现这个情况呢?
1 楼 oppal 2011-10-27  
试试iterator

相关推荐

    Java中ArrayList的removeAll方法详解

    ArrayList的removeAll方法是一个常用的集合操作方法,该方法可以从一个ArrayList中删除所有在另外一个集合中的元素。但是,在实际开发过程中,removeAll方法的使用需要 thận重,因为它可能会导致性能问题。 1. ...

    Java中ArrayList的使用方法以及与vector的对比

    Java 中 ArrayList 的使用方法以及与 Vector 的对比 ArrayList 是 Java 中的一种动态数组,它提供了很多有用的特性,例如动态地增加和减少元素,实现了 ICollection 和 IList 接口,灵活的设置数组的大小等。下面...

    Java中ArrayList的使用方法简单介绍

    在Java编程语言中,ArrayList是集合框架中的一种重要数据结构,属于List接口的实现类。ArrayList主要用于存储一组有序的、可变大小的对象序列。它的特点是允许快速的随机访问,但插入和删除元素时效率相对较低,因为...

    java中ArrayList的用法

    ### Java中ArrayList的用法详解 #### 一、概述 `ArrayList`是Java集合框架中的一个动态数组类,它能够存储任意类型的对象,并且在运行时动态调整其大小。这使得`ArrayList`成为处理数量未知的数据集合时的一个非常...

    Java中ArrayList类的用法.docx

    ### Java中ArrayList类的用法详解 #### 一、ArrayList的概念 `ArrayList`是Java集合框架中的一个重要组成部分,它提供了一种类似于数组的数据结构,但与传统的数组相比,`ArrayList`具有更多的灵活性。它可以动态地...

    java ArrayList.remove()的三种错误用法以及六种正确用法详解

    ArrayList的remove()方法是一个关键功能,用于删除列表中的元素。然而,如果不正确地使用这个方法,可能会导致程序运行错误或预期之外的结果。以下是对`java ArrayList.remove()`的三种错误用法以及六种正确用法的...

    试谈Java中ArrayList类的使用.pdf

    "Java 中 ArrayList 类的使用" Java 中的 ArrayList 类是一种常用的数据结构,它可以实现可变长度的数组。ArrayList 类提供了多种方法来操作数组中的元素,包括添加、删除、获取、设置、查找等。 构造方法 ...

    Java中ArrayList类的用法.pdf

    Java中的ArrayList类是Java集合框架的一部分,它是基于数组实现的可变大小的列表。ArrayList类在编程中扮演着重要角色,因为它提供了动态增加和减少元素的能力,这比传统的固定大小的数组更加灵活。ArrayList实现了...

    Java中ArrayList在foreach里remove的问题详析

    " Java中ArrayList在foreach里remove的问题详析 " 在Java中,ArrayList是一个动态数组,它提供了动态的增加和减少元素的功能,並实现了ICollection和IList接口。然而,在使用foreach循环时,ArrayList不能add元素,...

    Java中ArrayList类的用法知识.pdf

    Java中的ArrayList类是Java集合框架的一部分,它是List接口的一个实现,主要用于存储可变大小的有序对象集合。ArrayList基于数组实现,允许动态地增加或减少元素,提供了丰富的操作方法,适用于需要频繁增删元素的...

    模拟java ArrayList Iterator

    在Java中,ArrayList类继承自AbstractList接口,并实现了List接口,提供了丰富的操作方法,如add、remove、get等。 Iterator设计模式是一种行为设计模式,它的主要作用是为集合提供一种顺序访问元素的方式,而无需...

    java关键字ArrayList详解

    - 删除元素:remove()方法可以按索引删除元素,removeAll()方法用于移除集合中的所有匹配项。 - 修改元素:set()方法允许通过索引更改现有元素。 - 查找元素:get()方法通过索引获取元素,indexOf()和lastIndexOf()...

    Java员工管理系统,ArrayList存储

    ArrayList提供了add()方法用于添加员工,get()方法获取指定索引的员工,remove()方法删除员工,以及size()方法获取员工数量。 3. **基本操作**:系统应提供添加员工、删除员工、查找员工、更新员工信息等基本操作。...

    java arrayList遍历的四种方法及Java中ArrayList类的用法

    Java中的ArrayList是一个非常重要的数据结构,它作为动态数组,提供了比传统数组更强大的功能和灵活性。ArrayList类位于java.util包中,它实现了List接口,因此它支持有序的元素集合,并且允许重复元素。以下是...

    java中数组列表ArrayList的使用.doc

    Java 中数组列表 ArrayList 的使用 ArrayList 是 Java 中的一种动态数组,提供了动态的增加和减少元素的功能,实现了 ICollection 和 IList 接口,灵活地设置数组的大小。下面是 ArrayList 的一些重要的方法和属性...

    java ArrayList的使用与分析

    ArrayList 是 Java 集合框架中的一个重要组成部分,它是一个基于数组实现的可变大小的列表。ArrayList 类继承自 AbstractList 类并实现了 List 接口,这意味着它可以被用作一个有序的元素集合,允许我们在任何位置...

    Java基础-ArrayList方法全解(上).pdf

    ArrayList是Java集合框架中常用的动态数组,它允许我们在运行时添加、删除和访问元素。在Java中,ArrayList实现了List接口,因此它支持有序的元素序列,并且允许有重复元素。本文将深入解析ArrayList的主要方法,...

    Java中ArrayList类的使用方法

    ArrayList是Java中常用的一种集合类,它是基于动态数组实现的,允许我们在运行时灵活地添加、删除或修改元素。ArrayList类是Java集合框架的一部分,它实现了List接口,因此也遵循了列表的所有规则。 1. **ArrayList...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等...

Global site tag (gtag.js) - Google Analytics