在今天做android当项目,我遇到了这个异常,好吧。其实最不寻常遇到异常IllegalstateException。它们与我们的硬件连接SDK抛出,我想折磨学生阿玉啊。扯远了。

今天,我想回到这个异常。java.util.ConcurrentModificationException异常,一開始我愣了一下。貌似从来没遇到过这个,然后果断百度大神。这才发现:

原因是你遍历该集合时。对该集合进行了删除元素的操作导致的。假设你有删除元素的必要,建议赋值到还有一个集合,然后对他进行删除操作.

偶出现错误的地方:

if (serverCards != null) {for (PaymentCard serverCard : serverCards) {MstCard matchingMstCard = findMatchingMstCard(serverCard,mstCards);ChargecaseCard matchingChargecaseCard = findMatchingChargecaseCard(serverCard, chargecaseCards);if (matchingMstCard != null && matchingChargecaseCard != null) {matchingMstCard.setDominantColor(serverCard.getDominantColor());matchingChargecaseCard.setDominantColor(serverCard.getDominantColor());unifiedCards.add(new UnifiedCard(matchingMstCard,serverCard, matchingChargecaseCard));mstOnlyCards.remove(matchingMstCard);chargecaseOnlyCards.remove(matchingChargecaseCard);} else if (matchingMstCard != null&& matchingChargecaseCard == null) {matchingMstCard.setDominantColor(serverCard.getDominantColor());unifiedCards.add(new UnifiedCard(matchingMstCard,serverCard));mstOnlyCards.remove(matchingMstCard);} else if (matchingMstCard == null&& matchingChargecaseCard != null) {matchingChargecaseCard.setDominantColor(serverCard.getDominantColor());unifiedCards.add(new UnifiedCard(serverCard,matchingChargecaseCard));chargecaseOnlyCards.remove(matchingChargecaseCard);} else {serverOnlyCards.add(serverCard);}}}for (MstCard card : mstOnlyCards) {ChargecaseCard matchingChargecaseCard = findMatchingChargecaseCard(card, chargecaseCards);if (matchingChargecaseCard != null) {matchingChargecaseCard.setDominantColor(card.getDominantColor());unifiedCards.add(new UnifiedCard(card, null,matchingChargecaseCard));chargecaseOnlyCards.remove(matchingChargecaseCard);} else {unifiedCards.add(new UnifiedCard(card));}}for (ChargecaseCard card : chargecaseOnlyCards) {unifiedCards.add(new UnifiedCard(card));}for (PaymentCard card : serverOnlyCards) {unifiedCards.add(new UnifiedCard(card));}return unifiedCards;

在一个for循环中mstOnlyCards调用了,mstOnlyCards.remove()方法。

特记录之,引以为戒。

版权声明:本文博主原创文章。博客,未经同意不得转载。

转载于:https://www.cnblogs.com/mengfanrong/p/4806166.html

android详细信息java.util.ConcurrentModificationException变态相关推荐

  1. java.util.ConcurrentModificationException at java.util.ArrayList$Itr.next(ArrayList.java:860

    问题 使用ArrayList数据结构, 在迭代的请求页面进行数据刷新, 控制台报错 java.util.ConcurrentModificationExceptionat java.util.Arra ...

  2. 【集合类】 1 java.util.ConcurrentModificationException异常详解ArrayListCopyOnWriteArrayList原理探究

    环境:JDK 1.8.0_111 文章目录 概述 一.单线程情况下问题分析及解决方案 1.1 问题复现 1.2 问题原因分析 1.3 问题解决方案 二. 多线程情况下的问题分析及解决方案 2.1 问题 ...

  3. java.util.ConcurrentModificationException: null异常(已解决,原因出自于Java集合的快速失败机制)

    问题来源 今天我在写项目时,对集合中的元素做了以下操作 报错信息如图 问题来源: 在Java中对集合进行遍历时,一旦对集合进行增删操作,在遍历时会引起java.util.ConcurrentModif ...

  4. Axis1.4漏洞,Caused by: org.apache.axis.AxisFault: java.util.ConcurrentModificationException

    Axis1.4漏洞,Caused by: org.apache.axis.AxisFault: java.util.ConcurrentModificationException 问题 原因 解决方案 ...

  5. java.util.ConcurrentModificationException(并发修改错...

    为什么80%的码农都做不了架构师?>>>    public class ConcurrentModificationExceptionextends RuntimeExceptio ...

  6. 出现 java.util.ConcurrentModificationException 时的解决办法

    for (int i=0; i<list.size(); i++) { // 只有在这种方式遍历集合时,同时对集合增加.删除才不会影响. // list.remove(list.get(i)); ...

  7. java.util.ConcurrentModificationException异常原因及解决方法

    java.util.ConcurrentModificationException异常原因及解决方法 参考文章: (1)java.util.ConcurrentModificationExceptio ...

  8. 非线程安全类ArrayList出现异常:java.util.ConcurrentModificationException

    今天执行了一段<图解多线程设计模式>中的代码,结果抛出了如下的异常: Exception in thread "ReaderThread" java.util.Conc ...

  9. 异常:java.util.ConcurrentModificationException

    Quote: 异常:java.util.ConcurrentModificationException 在Map或者Collection的时候,不要用它们的API直接修改集合的内容,如果要修改可以用I ...

  10. java.util.ConcurrentModificationException 解决办法

    在使用iterator.hasNext()操作迭代器的时候,如果此时迭代的对象发生改变,比如插入了新数据,或者有数据被删除. 则使用会报以下异常: Java.util.ConcurrentModifi ...

最新文章

  1. OpenCV-Java版学习(3.对视频的基本操作)
  2. 硬中断 / 软中断的原理和实现
  3. 简单的html5 readAsDataURL img和base64互相转换
  4. Android MIPI转LVDS显示屏调试--- bootloader阶段显示(4)
  5. 利用Proceesson在线绘制流程图实例演练!流程图的要点和注意事项说明
  6. cli parser_Java命令行界面(第27部分):cli-parser
  7. 显示文字_如何观看HBO Max并显示中文字幕?
  8. 关于钩子(Hook)的使用
  9. ASP.NET 4新增功能(一) ASP.NET核心服务
  10. 如何删除git本地分支
  11. 如何避开微信小程序的审核机制(实测有效)
  12. 施一公:如何提高专业英文文献阅读能力?
  13. 大二下学习资料的整理
  14. python 图片二值化处理(处理后为纯黑白的图片)
  15. Hudi-Flink SQL实时读取Hudi表数据
  16. 人工神经网络的发展前景,人工神经网络及其应用
  17. SSH框架 Bean property * is not writable or has an invalid setter method错误分析与解决方法
  18. CA认证简单介绍与工作流程
  19. UE4 Atmospheric Fog组件问题记录(未解决)
  20. matlab类中增加公共属性,在面向对象的MATLAB中,属性如何工作?

热门文章

  1. 重新认识Java包的命名规则
  2. 恢复误删文件 Windows File Recovery
  3. 23. 从上往下打印二叉树[层序遍历](C++版本)
  4. PHP导航栏管理,zblog导航栏管理设置的几种方法
  5. 错误的参数个数或无效的参数属性值_数据处理-利用 python进行异常值分析
  6. 创建者模式 --- 单例模式
  7. redis的发布和订阅
  8. adguard自定义_搭建AdGuard Home自定义dns,实现全设备拦截广告的目的
  9. pytorch l2正则化_理解机器学习中的 L2 正则化
  10. liunx上mysql源码安装mysql_搞定linux上MySQL编程(一):linux上源码安装MySQL