91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

出現java.util.ConcurrentModificationException 問題及解決辦法

發布時間:2020-09-06 04:27:36 來源:腳本之家 閱讀:295 作者:dns007 欄目:編程語言

java.util.ConcurrentModificationException 解決辦法

前言:

在使用iterator.hasNext()操作迭代器的時候,如果此時迭代的對象發生改變,比如插入了新數據,或者有數據被刪除。

則使用會報以下異常:

Java.util.ConcurrentModificationException
    at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
    at java.util.HashMap$KeyIterator.next(HashMap.java:828)

例如以下程序(轉自互聯網):

mport java.util.*; 
 
public class Main 
{ 
public static void main(String args[]) 
{ 
Main main = new Main(); 
main.test(); 
} 
 
public void test() 
{ 
Map bb = new HashMap(); 
bb.put("1", "wj"); 
bb.put("2", "ry"); 
Iterator it = bb.keySet().iterator(); 
while(it.hasNext()) { 
Object ele = it.next(); 
      bb.remove(ele);  //wrong 
} 
System.out.println("Success!"); 
} 
} 

原因:Iterator做遍歷的時候,HashMap被修改(bb.remove(ele), size-1),Iterator(Object ele=it.next())會檢查HashMap的size,size發生變化,拋出錯誤ConcurrentModificationException。

解決辦法:

1) 通過Iterator修改Hashtable

while(it.hasNext()) {
Object ele = it.next();
      it.remove();
}

2) 根據實際程序,您自己手動給Iterator遍歷的那段程序加鎖,給修改HashMap的那段程序加鎖。

3) 使用“ConcurrentHashMap”替換HashMap,ConcurrentHashMap會自己檢查修改操作,對其加鎖,也可針對插入操作。

import java.util.concurrent.*;

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长治县| 屏东县| 黑山县| 永登县| 淅川县| 崇礼县| 台东市| 饶平县| 黄山市| 鄂托克旗| 巩留县| 象州县| 新建县| 黔东| 大丰市| 望谟县| 武乡县| 中牟县| 屯昌县| 托克逊县| 安泽县| 满洲里市| 徐闻县| 永川市| 丹凤县| 神木县| 桃园市| 八宿县| 丹寨县| 阆中市| 德保县| 台江县| 垦利县| 亳州市| 大港区| 紫阳县| 华安县| 明溪县| 乌鲁木齐县| 太仆寺旗| 康马县|