`
summer_021
  • 浏览: 57974 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

List删除元素

阅读更多
方法一
Java代码

   
ArrayList<String> list = new ArrayList<String>();   
            list.add("one");   
            list.add("two");   
            list.add("two");   
            list.add("two");   
            list.add("two");   
            for(int i=0;i<list.size();i++){   
                if(list.get(i).equals("two")){   
                    list.remove(i);   
                }   
            }   
            System.out.println(list);  


结果:
Java代码

 
  [one, two, two]  


方法二
Java代码
 ArrayList<String> list = new ArrayList<String>();   
    list.add("one");   
    list.add("two");   
    list.add("two");   
    list.add("two");   
    list.add("two");   
    for(String s:list){   
        if(s.equals("two")){   
            list.remove(s);   
        }   
    }   
    System.out.println(list);  
 

  


结果:
Java代码

 
   Exception in thread "main" java.util.ConcurrentModificationException   
        at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)   
        at java.util.AbstractList$Itr.next(AbstractList.java:343)   
        at Test.main(Test.java:22)
 

   



方法三:
Java代码
   ArrayList<String> list = new ArrayList<String>();   
    list.add("one");   
    list.add("two");   
    list.add("two");   
    list.add("two");   
    list.add("two");   
    Iterator<String> iter = list.iterator();   
    while(iter.hasNext()){   
        String s = iter.next();   
        if(s.equals("two")){   
            iter.remove();   
        }   
    }   
    System.out.println(list);  

 

  
结果:
Java代码

    [one] 

结论:

删除还是用迭代器的比较好,其它的都会有问题.
原文地址:http://blog.sina.com.cn/s/blog_5a3ab49d0100f79a.html
分享到:
评论

相关推荐

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

    以下将详细介绍如何在C#中遍历List并删除元素,包括正序和倒序遍历的技巧。 首先,我们来看一下错误的遍历方式。通常,开发者可能会本能地使用for循环来遍历List,如下所示: ```csharp for (int i = 0; i &lt; list....

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

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

    python list删除元素时要注意的坑点分享

    在这个例子中,我们尝试通过for循环遍历列表`a`并逐个删除元素。但结果并不是我们期望的清空列表,而是只留下了2、4和6这三个元素。这是因为在迭代过程中,当我们删除一个元素时,列表的索引会重新排列,导致原本...

    C++中list的使用方法及常用list操作总结

    List是stl实现的双向链表,与向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢。使用时需要添加头文件 #include &lt;list&gt; 二、List定义和初始化:  list&lt;int&gt;lst1; //创建空list  list&lt;int&gt; lst2...

    浅析jquery数组删除指定元素的方法:grep()

    在JavaScript中,原生提供的`splice()`方法是一种常用的方式,它通过指定的索引位置来删除元素。然而,在某些情况下,使用`splice()`方法可能会得到不符合预期的结果,比如在原数组上直接修改,返回被删除的元素,而...

    Python list列表中删除多个重复元素操作示例

    本文实例讲述了Python list列表中删除多个重复元素操作。分享给大家供大家参考,具体如下: 我们以下面这个list为例,删除其中所有值为6的元素: l=[9,6,5,6,6,7,8,9,6,0] 首先尝试remove方法: l.remove(6) ...

    Python实现列表删除重复元素的三种常用方法分析

    本文实例讲述了Python实现列表删除重复元素的三种常用方法。分享给大家供大家参考,具体如下: 给定一个列表,要求删除列表中重复元素。 listA = ['python','语','言','是','一','门','动','态','语','言'] 方法1...

    删除List中的重复值

    删除List中的重复值 方法一:循环元素删除 // 删除ArrayList中重复元素 public static void removeDuplicate(List list) { for ( int i = 0 ; i &lt; list.size() - 1 ; i ++ ) { for ( int j = list.size() - ...

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

    要找出在第二个List中已被删除的元素,我们可以通过将第一个List的元素移除掉在第二个List中存在的元素来实现: ```java list1.removeAll(list2); ``` `list1`现在只包含在第二个List中被删除的元素。 4. **...

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

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

    list用remove实现结构体成员的删除

    总结一下,使用 `list` 的 `remove()` 方法删除结构体成员(对象实例)的关键在于找到要删除的元素,并根据其唯一的标识进行匹配。在实际编程中,我们还需要考虑到异常处理和对原列表的影响,以及选择合适的删除策略...

    poj题目分类

    - **remove()**:从List删除元素。 - **remove_if()**:按条件删除元素。 - **rend()**:返回指向List开始前的逆向迭代器。 - **resize()**:改变List的大小。 - **reverse()**:反转List中的元素顺序。 - **size()*...

    简单的ListCtrl多行删除

    在实际应用中,直接在循环中删除元素可能会导致一些问题,例如,删除项后,原先的索引可能不再有效,导致逻辑错误。为了解决这个问题,通常有两种方法: - **逆序删除**:即从列表的末尾开始向前删除,这样可以避免...

    C#在foreach遍历删除集合中元素的三种实现方法

    在foreach中删除元素时,每一次删除都会导致集合的大小和元素索引值发生变化,从而导致在foreach中删除元素时会抛出异常。 集合已修改;可能无法执行枚举操作。 方法一:采用for循环,并且从尾到头遍历 如果...

    基于list循环删除元素,迭代器失效的问题详解

    本文将深入探讨这个问题,并提供一个关于如何在删除元素时避免迭代器失效的示例。 首先,我们需要理解迭代器是什么。迭代器是C++中的一种特殊指针,它用于遍历和访问容器中的元素。对于`std::list`,迭代器提供了...

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

    - **注意**:必须使用Iterator的`remove()`方法删除元素,而不是直接调用List的`remove()`方法,否则依然会抛出`ConcurrentModificationException`。 总结,遍历删除List元素时,推荐使用Iterator,因为它提供了...

    java中循环删除list中元素的方法总结

    这里我们将详细讨论几种不同的循环遍历和删除元素的方法,以及它们的适用场景。 1. **常规for循环**: ```java for (int i = 0; i &lt; list.size(); i++) { if (list.get(i).equals("del")) { list.remove(i); }...

Global site tag (gtag.js) - Google Analytics