欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java.util.ConcurrentModificationException 解決方法

 更新時間:2016年11月24日 11:59:12   投稿:lqh  
這篇文章主要介紹了 java.util.ConcurrentModificationException 解決方法的相關(guān)資料,需要的朋友可以參考下

 java.util.ConcurrentModificationException 解決方法

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

則使用會報以下異常:

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

解決辦法:

1) 通過Iterator修改Hashtable

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

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

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

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

相關(guān)文章

  • Openstack各組件邏輯關(guān)系及運行流程解析

    Openstack各組件邏輯關(guān)系及運行流程解析

    這篇文章主要為大家介紹了Openstack各組件邏輯關(guān)系及運行流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • OpenStack Heat AutoScaling詳解及實例代碼

    OpenStack Heat AutoScaling詳解及實例代碼

    這篇文章主要介紹了OpenStack Heat AutoScaling詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • OpenStack云計算快速入門教程(1)之OpenStack及其構(gòu)成簡介

    OpenStack云計算快速入門教程(1)之OpenStack及其構(gòu)成簡介

    該教程基于Ubuntu12.04版,它將幫助讀者建立起一份OpenStack最小化安裝。這篇文章主要介紹了OpenStack云計算快速入門教程(1)之OpenStack及其構(gòu)成簡介 ,需要的朋友可以參考下
    2016-11-11
  • Centos7環(huán)境準(zhǔn)備openstack pike的安裝

    Centos7環(huán)境準(zhǔn)備openstack pike的安裝

    本篇文章主要介紹了Centos7環(huán)境準(zhǔn)備openstack pike的安裝,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • openstack云計算組件keystone部署及操作使用技巧

    openstack云計算組件keystone部署及操作使用技巧

    這篇文章主要為大家介紹了openstack云計算組件keystone部署及操作使用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • CentOS7.2部署OpenStack(一)—環(huán)境準(zhǔn)備

    CentOS7.2部署OpenStack(一)—環(huán)境準(zhǔn)備

    這篇文章主要介紹了CentOS7.2部署OpenStack(一)—環(huán)境準(zhǔn)備,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • CentOS系統(tǒng)中一鍵安裝Openstack圖文教程

    CentOS系統(tǒng)中一鍵安裝Openstack圖文教程

    最近在學(xué)習(xí)Openstack,一直想試試安裝一下,可是參考了很多資料,并不如人意。由于一直用的Linux版本為CentOS,大部分Openstack安裝都要求在Ubuntu上進(jìn)行。本文介紹的是在CentOS系統(tǒng)中一鍵安裝Openstack的方法,有需要的朋友們可以參考學(xué)習(xí),下面來一起看看吧。
    2016-10-10
  • OpenStack手動分布式部署Keystone(Queens版)

    OpenStack手動分布式部署Keystone(Queens版)

    這篇文章主要介紹了OpenStack手動分布式部署Keystone(Queens版),Keystone是OpenStack框架中負(fù)責(zé)管理身份驗證服務(wù)訪問規(guī)則和服務(wù)令牌功能的組件,需要的朋友可以參考下
    2023-03-03
  • 淺談openstack中使用linux_bridge實現(xiàn)vxlan網(wǎng)絡(luò)

    淺談openstack中使用linux_bridge實現(xiàn)vxlan網(wǎng)絡(luò)

    這篇文章主要介紹了淺談openstack中使用linux_bridge實現(xiàn)vxlan網(wǎng)絡(luò),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • openstack云計算cinder架構(gòu)及各組件功能介紹

    openstack云計算cinder架構(gòu)及各組件功能介紹

    這篇文章主要為大家介紹了openstack云計算之cinder架構(gòu)及各組件功能介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04

最新評論