出現 java.util.ConcurrentModificationException 時的解決辦法
原文:https://www.cnblogs.com/error404/archive/2011/11/25/2263671.html
for (int i=0; i<list.size(); i++) { // 隻有在這種方式遍曆集合時,同時對集合增加、刪除才不會影響。
// list.remove(list.get(i));
}
在對一個map進行迭代遍曆並刪除一些符合條件的鍵值對的時候,容易出現
java.util.ConcurrentModificationException 這個異常。 Exception in thread "main" java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787) at java.util.HashMap$KeyIterator.next(HashMap.java:823)
解決辦法如下:
import java.util.*; public class TestMap { public TestMap() { } public static void main(String[] args) { java.util.Map m = new java.util.HashMap(); m.put("aaa", "lizongbo "); m.put("bbb", " lizongbo"); m.put("ccc", "lizongbo "); m.put("ddd", " lizongbo"); m.put("eee", "lizongbo"); m.put("fff", "lizongbo"); m.put("ggg", "lizongbo"); m.put("adads", "lizongbo"); m.put("dffd", "lizongbo"); m.put("dcxv", "lizongbo"); m.put("lizongbo", "lizongbo"); m.put("ert", "lizongbo"); m.put("544", "lizongbo "); Iterator iterator = m.keySet().iterator(); while (iterator.hasNext()) { String sessionId = (String) iterator.next(); if ("ggg".equals(sessionId) || "lizongbo".equals(sessionId) || "544".equals(sessionId)) { iterator.remove(); //這行代碼是關鍵。 m.remove(sessionId); } } System.out.println(m.get("ggg")); System.out.println(m.get("lizongbo")); System.out.println(m.get("544")); }
最後更新:2017-04-02 06:52:12
上一篇:
天氣預報之抓取、解析、存入MYSQL數據庫模塊實現,不規範(代碼)
下一篇:
修正Magento1.6.1.0翻譯上的bug,提供補丁包下載
Linux Debugging(四): 使用GDB來理解C++ 對象的內存布局(多重繼承,虛繼承)
Weblogic常見故障常:JDBC Connection Pools
DockerCon 2017 Day 1 - Keynote 速記
MySQL 備份和恢複
文本文件與二進製文件的編碼差別
ASP.NET MVC以ModelValidator為核心的Model驗證體係: ModelValidatorProvider
金融安全資訊精選 2017年第六期:阿裏雲等3家單位具備CNVD技術組成員單位資格,反欺詐和身份管理是AI安全最熱兩大創業領域,互金安全負責人的安全建設心得
Git團隊協作使用規範 以及一些常用命令詳解
強密碼和弱密碼並沒有什麼區別?NIST密碼安全標準更新:不再建議密碼要求混合大寫字母、字符和數字
邏輯備份和物理備份簡單理解