久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Java - 線程“main"中的異常java.util.ConcurrentMod

Java - Exception in thread quot;mainquot; java.util.ConcurrentModificationException(Java - 線程“main中的異常java.util.ConcurrentModificationException)
本文介紹了Java - 線程“main"中的異常java.util.ConcurrentModificationException的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

有什么方法可以在迭代時修改特定鍵的 HashMap 值?

下面給出一個示例程序:

public static void main(String[] args) {哈希映射<整數,數組列表<字符串>>hm = new HashMap<Integer, ArrayList<String>>();ArrayListar = new ArrayList<String>();for(int i=0;i<50;i++){ar.add(Integer.toString(i));}hm.put(1, ar);for(字符串 s:hm.get(1)){hm.get(1).add("你好");}}

拋出錯誤:

線程main"中的異常 java.util.ConcurrentModificationException在 java.util.ArrayList$Itr.checkForComodification(未知來源)在 java.util.ArrayList$Itr.next(未知來源)在 Excp.main(Excp.java:17)

解決方案

檢測到對象的并發修改但不允許修改的方法可能會拋出此異常.

以下代碼導致問題.

for(String s:hm.get(1)){hm.get(1).add("你好");}

您正在迭代和修改相同的內容.通過創建 new ArrayList

來避免這種情況

 ArrayListar1 = new ArrayList();對于(字符串 s:hm.get(1)){ar1.add("你好");}

閱讀這里p>

Is there any way I can modify the HashMap values of a particular key while iterating over it?

A sample program is given below:

public static void main(String[] args) {
    HashMap<Integer,ArrayList<String>> hm = new HashMap<Integer, ArrayList<String>>();      
    ArrayList<String> ar = new ArrayList<String>(); 
    for(int i=0;i<50;i++){              
        ar.add(Integer.toString(i));            
    }

    hm.put(1, ar);      

    for(String s:hm.get(1)){
        hm.get(1).add("hello");
    }

}

Error Thrown:

Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
    at java.util.ArrayList$Itr.next(Unknown Source)
    at Excp.main(Excp.java:17)

解決方案

This exception may be thrown by methods that have detected concurrent modification of an object when such modification is not permissible.

Below peice of code is causing the problem.

for(String s:hm.get(1)){
        hm.get(1).add("hello");
    }

You are iterating and modifying the same. Avoid this by creating new ArrayList

  ArrayList<String> ar1 = new ArrayList<String>();

for (String s : hm.get(1)) {
            ar1.add("hello");
        }

have a read here

這篇關于Java - 線程“main"中的異常java.util.ConcurrentModificationException的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Convert List of Strings into Map using Java-8 Streams API(使用 Java-8 Streams API 將字符串列表轉換為 Map)
Getting data from JSON(從 JSON 獲取數據)
java linkedhashmap iteration(javalinkedhashmap迭代)
Converting a list of objects to Map(將對象列表轉換為 Map)
Create a HashMap with a fixed Key corresponding to a HashSet. point of departure(用一個固定的Key對應一個HashSet創建一個HashMap.出發點)
HttpMessageConverter exception : RestClientException: Could not write request: no suitable HttpMessageConverter found(HttpMessageConverter 異常:RestClientException:無法寫入請求:找不到合適的 HttpMessageConverter) - IT屋-程序員
主站蜘蛛池模板: 国产视频中文字幕 | 成人国产精品久久久 | 久久久久久网站 | 日韩在线视频观看 | 日韩欧美在线观看 | 免费色网址| 亚洲视频自拍 | 999久久久 | 午夜在线影院 | 国产一区二区三区色淫影院 | 在线第一页 | 亚洲精品电影在线观看 | 精品日韩一区二区 | 色在线看 | 国产成人在线一区二区 | 情侣黄网站免费看 | 水蜜桃亚洲一二三四在线 | 精品一区二区三区日本 | 日韩精品一区二区三区在线观看 | 激情五月婷婷综合 | 国产在线观看一区二区 | 伊人网国产 | 成人在线电影网站 | 国产精品1 | 日韩在线小视频 | 四虎精品在线 | 日韩精品免费视频 | 97在线观视频免费观看 | 亚洲欧美日韩国产综合 | av一区在线观看 | 色婷婷久久久亚洲一区二区三区 | 在线一级片 | 国产精品久久久av | 黄色一级大片在线免费看产 | 亚洲日本欧美 | 亚洲综合婷婷 | 国产视频亚洲视频 | 超碰男人天堂 | 色综合一区二区 | 成人精品鲁一区一区二区 | 午夜小电影 |