`

java list的正确remove。避免报java.util.ConcurrentModificationException

 
阅读更多
list的remove首先要从迭代器中remove
list的正确的remove的办法:

Iterator<StoreFriendLink >  it=friendlinks.iterator();
                   while(it.hasNext()){
                        StoreFriendLink next=it.next();
                         if(next.getId().equals(id)){
                              it.remove();
                              friendlinks.remove(next);
                        }
                  }
0
1
分享到:
评论

相关推荐

    java.util.ConcurrentModificationException 异常问题详解1

    Java.util.ConcurrentModificationException 异常问题详解 ConcurrentModificationException 异常是 Java 中一个常见的异常,它发生在 Iterator 遍历集合时,集合同时被修改引起的异常。在 Java 中,集合类如 ...

    java.util.ConcurrentModificationException(解决方案).md

    使用迭代器的`remove()`方法时,迭代器能够正确更新其内部状态,避免并发修改异常。 ### 注意事项 - 使用迭代器时不能在遍历过程中添加元素到集合中。如果需要添加元素,应该先收集新元素,然后在迭代完成后将新旧...

    com.harmonyos4.exception.ConcurrentModificationException.md

    在鸿蒙开发过程中遇到的`ConcurrentModificationException`异常问题及...在鸿蒙(HarmonyOS)的多线程开发中,正确的选择合适的集合和方法来避免`ConcurrentModificationException`异常是保证应用稳定性的重要步骤。

    java 集合并发操作出现的异常ConcurrentModificationException

    在Java编程中,`ConcurrentModificationException`是一个常见的运行时异常,主要出现在多线程环境下对集合类(如List、Set、Map等)进行并发修改时。然而,这个异常不仅限于多线程环境,即使在单线程中,如果在遍历...

    ConcurrentModificationException解决办法.md

    ConcurrentModificationException异常是在Java编程中处理集合时经常会遇到的一个问题。当集合正在被迭代时,如果同时又对其进行修改(比如增加、删除元素等操作),就可能会触发此异常。解决这个问题的方法有很多种...

    Java语言的Util类详细介绍

    Java语言的Util类详细介绍 Java语言的Util类是Java开发中非常重要的一部分,它提供了一系列的类来实现基本的数据结构,如线性表、链表等。这些类均在java.util包中。 Collection接口是Java中最基本的集合接口,一...

    ConcurrentModificationException(解决方案).md

    Java 的并发包 java.util.concurrent 提供了线程安全的集合类,如 CopyOnWriteArrayList 或 ConcurrentHashMap 等。这些集合类内部实现了线程安全的迭代和修改机制。因此,即便在迭代过程中发生修改,也不会抛出 ...

    详解Java 集合类 List 的那些坑

    Arrays.asList 方法返回的 List 并不是我们常用的 java.util.ArrayList,而是 Arrays 的静态内部类 java.util.Arrays.ArrayList,该类继承自抽象类 java.util.AbstractList,但没有实现 add 方法,默认抛出 java....

    Java程序员容易犯的10个错误

    正确做法是使用迭代器,但使用增强for循环(for-each)配合`list.remove()`会抛出`ConcurrentModificationException`。正确的迭代器移除方式如下: ```java Iterator&lt;String&gt; iter = list.iterator(); while ...

    java 迭代及迭代器的小例子

    例如,在java.util.concurrent包中的ConcurrentLinkedQueue等线程安全的集合类,它们的迭代器是弱一致性(weakly consistent)的,这意味着迭代器不会抛出ConcurrentModificationException,但可能不反映对集合的...

    Java源码分析:深入探讨Iterator模式

    在Java编程语言中,集合框架(`java.util`包)提供了多种容器类来存储对象,如`List`、`Set`和`Map`等。为了遍历这些容器中的元素,Java引入了迭代器模式(Iterator Pattern),这是一种常用的设计模式,它提供了一...

    java Iterator迭代器的使用

    4. **示例代码:MyIterator.java** 我们可以创建一个简单的程序,演示如何使用`Iterator`遍历ArrayList: ```java import java.util.ArrayList; import java.util.Iterator; public class MyIterator { ...

    迭代大师的修炼之道:Java中Iterator与增强for循环的深度解析

    import java.util.List; import java.util.Arrays; public class EnhancedForLoopExample { public static void main(String[] args) { List&lt;String&gt; names = Arrays.asList("Ada Lovelace", "Alan Turing", ...

    内置迭代器的linked list例题

    在Java编程语言中,LinkedList是一种实现List接口的数据结构,它以链表的形式存储元素。而内置迭代器(Iterator)是Java集合框架的重要组成部分,用于遍历集合中的元素,特别是对于LinkedList这种非连续内存存储的...

    【Java1迭代器】Java1迭代器

    5. 安全遍历:在迭代过程中,除了通过迭代器自带的remove方法外,应当避免使用集合的其他方法来添加或删除元素,否则可能会导致ConcurrentModificationException异常。 迭代器模式(Iterator Pattern)是一种行为...

    java基础 集合-22-迭代器设计模式

    在多线程环境中,如果不正确地使用迭代器,可能会出现并发修改异常(`ConcurrentModificationException`)。为了解决这个问题,Java提供了`ConcurrentSkipListMap`和`CopyOnWriteArrayList`等线程安全的集合,它们的...

    java-大数据基础面试思考.pdf

    Java BlockingQueue是并发集合util包的一部分,它支持在检索或存储元素时等待直到元素变得可用或空间变得可用。这种队列在多线程环境下特别有用,它允许生产者线程和消费者线程可以安全地进行通信,而不需要担心线程...

    【Java面试题】List如何一边遍历,一边删除?

    在Java编程中,遍历并删除List集合是一个常见的操作,但在实际编程中,如果不使用正确的方法,可能会导致`java.util.ConcurrentModificationException`异常。本文主要针对这个面试题,详细讲解如何在遍历List的同时...

    常见数据结构的Java实现

    1. `List`接口:`List`是`java.util`包下的一个接口,它继承自`Collection`接口,并添加了对有序元素序列的支持。`List`接口规定了添加、删除和访问元素的方法,如`add()`, `remove()`, 和 `get()`。 2. `...

    JAVA初学教程教你学会JAVA4

    当迭代器检测到列表在迭代过程中发生了改变时,它会抛出`ConcurrentModificationException`异常,以避免潜在的数据不一致性问题。 这种机制通过维护一个名为`modCount`的域来实现,每次列表发生结构性变化时(如...

Global site tag (gtag.js) - Google Analytics