android详细信息java.util.ConcurrentModificationException变态
今天,我想回到这个异常。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变态相关推荐
- java.util.ConcurrentModificationException at java.util.ArrayList$Itr.next(ArrayList.java:860
问题 使用ArrayList数据结构, 在迭代的请求页面进行数据刷新, 控制台报错 java.util.ConcurrentModificationExceptionat java.util.Arra ...
- 【集合类】 1 java.util.ConcurrentModificationException异常详解ArrayListCopyOnWriteArrayList原理探究
环境:JDK 1.8.0_111 文章目录 概述 一.单线程情况下问题分析及解决方案 1.1 问题复现 1.2 问题原因分析 1.3 问题解决方案 二. 多线程情况下的问题分析及解决方案 2.1 问题 ...
- java.util.ConcurrentModificationException: null异常(已解决,原因出自于Java集合的快速失败机制)
问题来源 今天我在写项目时,对集合中的元素做了以下操作 报错信息如图 问题来源: 在Java中对集合进行遍历时,一旦对集合进行增删操作,在遍历时会引起java.util.ConcurrentModif ...
- Axis1.4漏洞,Caused by: org.apache.axis.AxisFault: java.util.ConcurrentModificationException
Axis1.4漏洞,Caused by: org.apache.axis.AxisFault: java.util.ConcurrentModificationException 问题 原因 解决方案 ...
- java.util.ConcurrentModificationException(并发修改错...
为什么80%的码农都做不了架构师?>>> public class ConcurrentModificationExceptionextends RuntimeExceptio ...
- 出现 java.util.ConcurrentModificationException 时的解决办法
for (int i=0; i<list.size(); i++) { // 只有在这种方式遍历集合时,同时对集合增加.删除才不会影响. // list.remove(list.get(i)); ...
- java.util.ConcurrentModificationException异常原因及解决方法
java.util.ConcurrentModificationException异常原因及解决方法 参考文章: (1)java.util.ConcurrentModificationExceptio ...
- 非线程安全类ArrayList出现异常:java.util.ConcurrentModificationException
今天执行了一段<图解多线程设计模式>中的代码,结果抛出了如下的异常: Exception in thread "ReaderThread" java.util.Conc ...
- 异常:java.util.ConcurrentModificationException
Quote: 异常:java.util.ConcurrentModificationException 在Map或者Collection的时候,不要用它们的API直接修改集合的内容,如果要修改可以用I ...
- java.util.ConcurrentModificationException 解决办法
在使用iterator.hasNext()操作迭代器的时候,如果此时迭代的对象发生改变,比如插入了新数据,或者有数据被删除. 则使用会报以下异常: Java.util.ConcurrentModifi ...
最新文章
- OpenCV-Java版学习(3.对视频的基本操作)
- 硬中断 / 软中断的原理和实现
- 简单的html5 readAsDataURL img和base64互相转换
- Android MIPI转LVDS显示屏调试--- bootloader阶段显示(4)
- 利用Proceesson在线绘制流程图实例演练!流程图的要点和注意事项说明
- cli parser_Java命令行界面(第27部分):cli-parser
- 显示文字_如何观看HBO Max并显示中文字幕?
- 关于钩子(Hook)的使用
- ASP.NET 4新增功能(一) ASP.NET核心服务
- 如何删除git本地分支
- 如何避开微信小程序的审核机制(实测有效)
- 施一公:如何提高专业英文文献阅读能力?
- 大二下学习资料的整理
- python 图片二值化处理(处理后为纯黑白的图片)
- Hudi-Flink SQL实时读取Hudi表数据
- 人工神经网络的发展前景,人工神经网络及其应用
- SSH框架 Bean property * is not writable or has an invalid setter method错误分析与解决方法
- CA认证简单介绍与工作流程
- UE4 Atmospheric Fog组件问题记录(未解决)
- matlab类中增加公共属性,在面向对象的MATLAB中,属性如何工作?
热门文章
- 重新认识Java包的命名规则
- 恢复误删文件 Windows File Recovery
- 23. 从上往下打印二叉树[层序遍历](C++版本)
- PHP导航栏管理,zblog导航栏管理设置的几种方法
- 错误的参数个数或无效的参数属性值_数据处理-利用 python进行异常值分析
- 创建者模式 --- 单例模式
- redis的发布和订阅
- adguard自定义_搭建AdGuard Home自定义dns,实现全设备拦截广告的目的
- pytorch l2正则化_理解机器学习中的 L2 正则化
- liunx上mysql源码安装mysql_搞定linux上MySQL编程(一):linux上源码安装MySQL