`
123003473
  • 浏览: 1064712 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JAVA中LISt遍历时如何remove元素

    博客分类:
  • java
 
阅读更多
import java.util.*;
  public class object {
  public static void main(String[] args) {
  String str1 = new String("abcde");
  String str2 = new String("abcde");
  String str3 = new String("abcde");
  String str4 = new String("abcde");
  String str5 = new String("abcde");
  List list = new ArrayList();
  list.add(str1);
  list.add(str2);
  list.add(str3);
  list.add(str4);
  list.add(str5);
  System.out.println("list.size()=" + list.size());
  for (int i = 0; i < list.size(); i++) {
  if (((String) list.get(i)).startsWith("abcde")) {
  list.remove(i);
  }
  运行结果不是:
  list.size()=5
  after remove:list.size()=0
  居然是:
  list.size()=5
  after remove:list.size()=2
  原因:List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取。
  解决方法:
  1.倒过来遍历list
  for (int i = list.size()-1; i > =0; i--) {
  if (((String) list.get(i)).startsWith("abcde")) {
  list.remove(i);
  }
  }
  2.每移除一个元素以后再把i移回来
  for (int i = 0; i < list.size(); i++) {
  if (((String) list.get(i)).startsWith("abcde")) {
  list.remove(i);
  i=i-1;
  }
  }
  3.使用iterator.remove()方法删除
  for (Iterator it = list.iterator(); it.hasNext();) {
  String str = (String)it.next();
  if (str.equals("chengang")){
  it.remove();
  }
  }
  }
  System.out.println("after remove:list.size()=" + list.size());
  }
  } 
分享到:
评论

相关推荐

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

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

    list遍历集合源码

    在编程领域,集合是数据组织的基本形式之一,而List接口是Java中集合框架的重要组成部分。List接口继承自Collection,它代表一个有序的元素序列,允许重复元素,并且提供了索引访问。本文将深入探讨List接口及其相关...

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

    总结,`ListIterator`是Java中处理`List`的强大工具,它提供了更细粒度的控制,使得在遍历过程中进行元素操作变得简单而高效。熟练掌握`ListIterator`的使用,对于编写高效、灵活的Java代码大有裨益。

    java数组遍历 删除remove(示例代码)

    然而,当涉及到动态添加或删除元素时,数组并不方便,因为它在创建时必须指定长度,并且一旦创建,长度就不能改变。这时,我们可以转向使用集合类,如ArrayList,它提供了更灵活的方法来管理元素。 本示例中,我们...

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

    要解决List遍历删除元素的问题,可以使用Iterator来遍历List,并使用Iterator的remove方法来删除元素。这样可以避免ConcurrentModificationException异常。 HashMap的遍历方法 1. 使用keySet()方法 使用keySet()...

    java中List对象集合的遍历方法(三个)

    如果在遍历过程中需要移除元素,必须使用`it.remove()`,直接调用`list.remove()`会导致并发修改异常(ConcurrentModificationException)。 ### 第二种:增强型for循环(foreach) ```java for (A a : list) { /...

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

    在 Java 中,对 list 进行遍历和删除操作是一种常见的需求。本文将介绍 Java list 利用遍历进行删除操作的 3 种方法,并通过示例代码对每种方法进行详细的解释。 方法一:使用 for 循环 在使用 for 循环遍历 list ...

    java集合类遍历的同时如何进行删除操作.docx

    迭代器通常需要在删除元素时通过自身的`remove()`方法来确保内部状态的一致性。如果直接调用集合的`remove()`方法,迭代器可能无法跟踪这些变化,从而引发异常。 2. **代码示例与分析**: - **操作1**:创建一个新...

    List.removeAll() 方法的性能效率

    在Java编程语言中,`List.removeAll()`方法是一个非常实用的函数,它允许我们从列表中一次性移除所有指定元素。这个方法是集合框架的一部分,它提供了高效的方式来进行元素的删除操作。本文将深入探讨`removeAll()`...

    java遍历特例

    在Java编程中,遍历Map是一种常见的操作方式,尤其在处理键值对数据时尤为重要。本文档主要介绍了几种常用的遍历`Map`的方法,包括使用传统的迭代器、增强for循环(引入于JDK 1.5)以及对`TreeSet`进行排序的示例。 ...

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

    如果在遍历过程中需要删除元素,只能使用`it.remove()`,而不能直接使用`list.remove()`,否则可能会引发并发访问错误。 2. 使用增强型`for`循环(也称为foreach循环): ```java List list = new ArrayList(); // ...

    Java List集合方法及遍历过程代码解析

    Java List集合方法及遍历过程代码解析 Java List集合是 Java 编程语言中的一种常用的数据结构,可以存储多个...List 集合是 Java 编程语言中的一种常用的数据结构,提供了多种操作元素的方法和遍历过程的实现方式。

    Java中List集合的遍历实例详解

    如果需要在遍历过程中删除元素,必须使用`it.remove()`方法,不能直接调用`list.remove()`,否则会出现并发访问异常。 2. **增强型for循环(foreach)遍历** Java 5引入了增强型for循环,也称为foreach循环,使得...

    list遍历的五种方法

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

    去除链表重复元素-Java 实现

    在Java中,去除单链表中的重复元素可以通过使用哈希集合(HashSet)来实现,该集合用于存储已经遍历过的元素。在遍历链表的过程中,我们将每个元素与集合中的元素进行比较,如果发现重复,则删除链表中的该元素。 ...

    java计算同一个list中是否有相同的值

    在 Java 编程中,判断一个 `List` 中是否存在重复元素是一项常见的需求。特别是在数据处理、验证或分析等场景中,确保数据的唯一性对于维持数据完整性至关重要。 #### 核心概念解析 在给定的代码片段中,作者提供...

    Java 实例 - List 循环移动元素源代码+详细指导教程.zip

    然而,由于foreach不能直接修改正在遍历的集合,所以在移动元素时需要额外的逻辑。以下是一个示例: ```java List&lt;String&gt; list = new ArrayList(); list.add("A"); list.add("B"); list.add("C"); for (int ...

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

    在Java编程中,遍历并删除List中的元素是一项常见的操作,但如果不小心处理,可能会遇到错误,如`ConcurrentModificationException`。以下是几种常见的遍历删除List元素的方法及其注意事项: 1. **通过增强的for...

    java的list取之方法

    根据提供的文件信息,标题与描述均指向了Java中List的操作方法。然而,给出的部分内容却是一段关于导入Excel文件到Web应用中的代码片段,并没有直接涉及List的具体操作方法。因此,我们将结合标题与描述,围绕Java中...

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

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

Global site tag (gtag.js) - Google Analytics