在今天做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变态的更多相关文章

  1. 浅谈java.util.ConcurrentModificationException(并发修改异常)

    java中的list集合是我们经常使用的集合,而对集合进行增加和删除元素是我们最常用的操作.那么在什么时候对list集合什么样的操作,就会发生java.util.ConcurrentModificat ...

  2. CAS (15) — CAS 线上环境 Ehcache Replication 的非稳定重现错误 java.util.ConcurrentModificationException

    CAS (15) - CAS 线上环境 Ehcache Replication 的非稳定重现错误 摘要 线上环境在 EhCache Replication 过程中出现 java.util.Concur ...

  3. java.util.ConcurrentModificationException解决详解

    异常产生 当我们迭代一个ArrayList或者HashMap时,如果尝试对集合做一些修改操作(例如删除元素),可能会抛出java.util.ConcurrentModificationExceptio ...

  4. java.util.ConcurrentModificationException 多线程访问ArrayList引起

    http://blog.csdn.net/androiddevelop/article/details/21509345   Java ConcurrentModificationException ...

  5. java.util.ConcurrentModificationException 解决办法(转载)

    今天在项目的中有一个需求,需要在一个Set类型的集合中删除满足条件的对象,这时想当然地想到直接调用Set的remove(Object o)方法将指定的对象删除即可,测试代码:   public cla ...

  6. java.util.ConcurrentModificationException --map

    key:3-key key:/v1.02-key Exception in thread "main" java.util.ConcurrentModificationExcept ...

  7. 偶遇到 java.util.ConcurrentModificationException 的异常

    今天在调试程序 遇到了如此问题 贴上代码来看看稍后分析 List<String> list = null;boolean isUpdate = false;try { list = JSO ...

  8. 对ArrayList操作时报错java.util.ConcurrentModificationException null

    用iterator遍历集合时要注意的地方:不可以对iterator相关的地方做添加或删除操作.否则会报java.util.ConcurrentModificationException 例如如下代码: ...

  9. LinkedList - java.util.ConcurrentModificationException

    package com.test.io; import java.io.BufferedReader; import java.io.FileNotFoundException; import jav ...

随机推荐

  1. C++指针和引用简介

    摘要 本文介绍C++指针和概念引用 这是一个指针 指针的类型 指针所指向的类型 指针表达式 指针与函数 什么是引用 指针引用差别 指针和引用的同样点和不同点 **什么是指针** 指针就是一个存放地址的 ...

  2. Linux课程_系统配置和日常维护

    1.设置命令输入提示格公式:"username:当前文件夹$" 2.设置命令输入提示行格式为:"当前系统时间-用户#"(提示:Shell将通过反引號" ...

  3. Matlab学习------------带有右键菜单的GUI学习实例

    实例步骤: 须要设置UIContextMenu,否则点击右键不显示. 右键点击第一个菜单之后:(在菜单中加入对应的回调函数) function r1_Callback(hObject, eventda ...

  4. 原生js判断css3动画过度(transition)结束 transitionend事件 以及关键帧keyframes动画结束(animation)回调函数 animationEnd 以及 css 过渡 transition无效

      上图的 demo 主要讲的 是 css transition的过渡回调函数transitionend事件: css3 的时代,css3--动画 一切皆有可能: 传统的js 可以通过回调函数判断动画 ...

  5. HDU 4917 Permutation

    意甲冠军: 序列p1.p2.p3--pn由1.2.3--n这些数字  现在给出一些条件pi<pj  部条件的排列的个数 思路: 非常easy想到用一条有向的线连接全部的pi和pj  那么就构成了 ...

  6. html5中关于input使用方法的改变

    測试环境:Firefox 10.0.Safari 5.1.Opera 11.61, Chrome 14.0.835.202 自己測试的时候都有写在form表单里,有提交button验证.由于对博客使用 ...

  7. Web Design 再生:UX Design

    高质量的Web 模板,成熟的Design Pattern,人工智能的引用,移动技术的冲击是否标志着Web Design 结束的时代已经到来? Web Design 最终也未避免与“死亡”这个词的关联, ...

  8. JAVA —— console输入输出

    import java.io.*; public class ConsoleIOTest { public static void main(String[] args) { BufferedRead ...

  9. 王立平--android特权

    //同意应用程序访问和更改checkin数据库"properties"数据表 android.permission.ACCESS_CHECKIN_PROPERTIES //同意应用 ...

  10. JavaScript-2.2 document.write 输出到页面的内容

    <html> <head> <meta http-equiv="content-type" content="text/html;chars ...