android详细信息java.util.ConcurrentModificationException变态
在今天做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()方法。
特记录之,引以为戒。
版权声明:本文博主原创文章。博客,未经同意不得转载。
android详细信息java.util.ConcurrentModificationException变态的更多相关文章
- 浅谈java.util.ConcurrentModificationException(并发修改异常)
java中的list集合是我们经常使用的集合,而对集合进行增加和删除元素是我们最常用的操作.那么在什么时候对list集合什么样的操作,就会发生java.util.ConcurrentModificat ...
- CAS (15) — CAS 线上环境 Ehcache Replication 的非稳定重现错误 java.util.ConcurrentModificationException
CAS (15) - CAS 线上环境 Ehcache Replication 的非稳定重现错误 摘要 线上环境在 EhCache Replication 过程中出现 java.util.Concur ...
- java.util.ConcurrentModificationException解决详解
异常产生 当我们迭代一个ArrayList或者HashMap时,如果尝试对集合做一些修改操作(例如删除元素),可能会抛出java.util.ConcurrentModificationExceptio ...
- java.util.ConcurrentModificationException 多线程访问ArrayList引起
http://blog.csdn.net/androiddevelop/article/details/21509345 Java ConcurrentModificationException ...
- java.util.ConcurrentModificationException 解决办法(转载)
今天在项目的中有一个需求,需要在一个Set类型的集合中删除满足条件的对象,这时想当然地想到直接调用Set的remove(Object o)方法将指定的对象删除即可,测试代码: public cla ...
- java.util.ConcurrentModificationException --map
key:3-key key:/v1.02-key Exception in thread "main" java.util.ConcurrentModificationExcept ...
- 偶遇到 java.util.ConcurrentModificationException 的异常
今天在调试程序 遇到了如此问题 贴上代码来看看稍后分析 List<String> list = null;boolean isUpdate = false;try { list = JSO ...
- 对ArrayList操作时报错java.util.ConcurrentModificationException null
用iterator遍历集合时要注意的地方:不可以对iterator相关的地方做添加或删除操作.否则会报java.util.ConcurrentModificationException 例如如下代码: ...
- LinkedList - java.util.ConcurrentModificationException
package com.test.io; import java.io.BufferedReader; import java.io.FileNotFoundException; import jav ...
随机推荐
- 1002. 写这个号码 (20)(数学啊 ZJU_PAT)
主题链接:http://pat.zju.edu.cn/contests/pat-b-practise/1002 读入一个自然数n,计算其各位数字之和.用汉语拼音写出和的每一位数字. 输入格式:每一个測 ...
- KindEditor参数具体解释
width 编辑器的宽度.能够设置px或%.比textarea输入框样式表宽度优先度高. 数据类型: String 默认值: textarea输入框的宽度 演示样例: K.create('#id', ...
- POJ 2226 Muddy Fields(最小顶点覆盖)
POJ 2226 Muddy Fields 题目链接 题意:给定一个图,要求用纸片去覆盖'*'的位置.纸片能够重叠.可是不能放到'.'的位置,为最少须要几个纸片 思路:二分图匹配求最小点覆盖.和放车那 ...
- SAP ABAP 它已被释放TR(或任务),减少的变化TR(任务),删除释放TR(任务)
有时,我们会遇到将是一个TR以下任务task发布,然后想改变,或不想转移TR. 或想删除已释放TR. 研究发现后面,TR(任务)存储在数据库表汇的相应数据:E070(变化 & 交通系统: 求/ ...
- uva 10825 - Anagram and Multiplication(暴力)
题目链接:uva 10825 - Anagram and Multiplication 题目大意:给出m和n,要求找一个m位的n进制数,要求说该数乘以2~m中的随意一个数的结果是原先数各个位上数值的一 ...
- Unity项目优化--开发项目的小经验
原文地址:http://blog.csdn.net/liang_704959721/article/details/8548619 我们主要使用 3dsmax2010 进行制作,输出 FBX的类型导入 ...
- MsSqlServer 语句
--假设 成绩>100 优 --假设成绩>90 良 select * from TblScore select 英语成绩= (case when tEnglish>90 then ...
- Android读取JSON格式数据
Android读取JSON格式数据 1. 何为JSON? JSON,全称为JavaScript Object Notation,意为JavaScript对象表示法. JSON 是轻量级的文本数据交换格 ...
- Oracle性能优化学习笔记WHERE在连接顺序的条款
ORACLE自下而上分析顺序WHERE条款,根据这一原理,表之间的连接必须写在其它WHERE先决条件, 这些条件可以过滤掉要被写入记录的最大数目WHERE在条款结束. 比如: (低效, ...
- 朴素贝叶斯算法(Naive Bayes)
朴素贝叶斯算法(Naive Bayes) 阅读目录 一.病人分类的例子 二.朴素贝叶斯分类器的公式 三.账号分类的例子 四.性别分类的例子 生活中很多场合需要用到分类,比如新闻分类.病人分类等等. 本 ...