在今天做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. ProgressMonitorInputStream

    Swing类包中有一个很有用的流过滤器,ProgressMonitorInputStream,它可以自动弹出一个对话框,监视已经读取了多少流. 进度监视器流使用InputStream类的availab ...

  2. 买面包和IoC

    今天上午准备去一个阿姨,在那里买面包.这可能是由于小尺寸她的,因此,管理不规范,所以,当你买面包.没有人行.即使所有的大学生,似几乎没有这种意识.. . 但让我感到震惊的是.尽管没有排队,但阿姨似乎能 ...

  3. (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上

    (1)首先创建java project 选择eclipse菜单上File->New->Java Project. 并命名为UploadFile. (2)加入必要的hadoop jar包 右 ...

  4. NetBeans工具学习之道:NetBeans IDE Java 高速新手教程

    欢迎使用 NetBeans IDE! 本教程通过指导您创建一个简单的 "Hello World" Java 控制台应用程序,简要介绍 NetBeans IDE 工作流.学习完本教程 ...

  5. Html5响应式设计与实现广场

    由于提出的想法响应式设计,越来越多的网站使用这样的思想.各类大型网站如雨后春笋般涌了出来.例如:小米商城.天猫等. 至于响应式设计的概念等大家能够去百度百度,我这里就不相信解说了.直接为大家带来源代码 ...

  6. 对LevelDB的“升级版”存储引擎RocksDB的调研成果

    Google的leveldb是个非常优秀的存储引擎.但还是有一些不尽人意的地方,比方leveldb不支持多线程合并.对key范围查找的支持还非常easy,未做优化措施,等等.而Facebook的Roc ...

  7. Mybatis分页插件更新

    分页插件演示:http://blog.csdn.net/isea533/article/details/23831273 分页插件演示样例:http://blog.csdn.net/isea533/a ...

  8. 【MySQL案件】ERROR 1665 (HY000)

    转载请注明: http://blog.csdn.net/jason_asia/article/details/36240815 1.1.1. ERROR 1665 (HY000) [环境的叙述性说明] ...

  9. Path和ClassPath差异

    1.Path角色 Path它用于指定Java路径的命令,当我们想编译Java当需要使用的程序javac.exe并运行.class当文件需要使用java.exe,此时Path设置的路径就发生作用了.由于 ...

  10. SDUT 1265-马停下过河卒(DFS)

    马拦过河卒 nid=24#time" title="C.C++.go.haskell.lua.pascal Time Limit3000ms Memory Limit 65536K ...