免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

出現(xiàn)java.util.ConcurrentModificationException問(wèn)題及解決辦法

java.util.ConcurrentModificationException 解決辦法

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶(hù),是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶(hù)多一個(gè)朋友!專(zhuān)注中小微企業(yè)官網(wǎng)定制,成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。

前言:

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

則使用會(huì)報(bào)以下異常:

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

例如以下程序(轉(zhuǎn)自互聯(lián)網(wǎng)):

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做遍歷的時(shí)候,HashMap被修改(bb.remove(ele), size-1),Iterator(Object ele=it.next())會(huì)檢查HashMap的size,size發(fā)生變化,拋出錯(cuò)誤ConcurrentModificationException。

解決辦法:

1) 通過(guò)Iterator修改Hashtable

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

2) 根據(jù)實(shí)際程序,您自己手動(dòng)給Iterator遍歷的那段程序加鎖,給修改HashMap的那段程序加鎖。

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

import java.util.concurrent.*;

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

名稱(chēng)欄目:出現(xiàn)java.util.ConcurrentModificationException問(wèn)題及解決辦法
鏈接URL:http://newbst.com/article34/jhcspe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄商城網(wǎng)站網(wǎng)站內(nèi)鏈網(wǎng)站排名網(wǎng)站導(dǎo)航企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)