java.lang.IllegalStateException異常原因和解決辦法
1、出現(xiàn)該異常場景
Iterator.remove() 迭代刪除 引發(fā)
2、問題定位分析
1. Iterator.remove() 迭代刪除 引發(fā)
重復(fù) remove 導(dǎo)致出現(xiàn)該異常
場景示例
@Test public void illegalStateExceptionTest (){ ArrayList<String> strs = new ArrayList<>(); strs.add("1,2"); strs.add("3,4,5"); strs.add("6,7,8,9,10"); Iterator<String> itr = strs.iterator(); while (itr.hasNext()){ String str = itr.next(); String[] split = str.split(","); for (String s : split) { if (s.equals("4") || s.equals("5")){ itr.remove(); // 存在循環(huán)體,重復(fù)remove 導(dǎo)致異常 //break; } } } }
問題分析
需要使用next方法迭代出集合中的元素 ,然后才能調(diào)用remove方法,
否則集合可能會(huì)因?yàn)閷?duì)同一個(gè)Iterator remove了多次而拋出java .lang.IllegalStateException異常。
解決:可在循環(huán)體中 remove 后跳出循環(huán) 使用 break
總結(jié)
到此這篇關(guān)于java.lang.IllegalStateException異常原因和解決辦法的文章就介紹到這了,更多相關(guān)java.lang.IllegalStateException異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java?離線中文語音文字識(shí)別功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java?離線中文語音文字識(shí)別,本次使用springboot?+maven實(shí)現(xiàn),官方demo為springboot+gradle,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07Java 自定義Spring框架與Spring IoC相關(guān)接口分析
Spring框架是由于軟件開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于服務(wù)器端的開發(fā)2021-10-10Java實(shí)戰(zhàn)項(xiàng)目 醫(yī)院預(yù)約掛號(hào)系統(tǒng)
本文是一個(gè)Java語言編寫的實(shí)戰(zhàn)項(xiàng)目,是一個(gè)醫(yī)院預(yù)約掛號(hào)系統(tǒng),主要用到了jdbc+jsp+mysql+ajax等技術(shù),技術(shù)含量比較高,感興趣的童鞋跟著小編往下看吧2021-09-09詳細(xì)介紹Java關(guān)鍵字throw?throws?Throwable的用法與區(qū)別
這篇文章主要介紹了java中throws與throw及Throwable的用法和區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Java注解的Retention和RetentionPolicy實(shí)例分析
這篇文章主要介紹了Java注解的Retention和RetentionPolicy,結(jié)合實(shí)例形式分析了Java注解Retention和RetentionPolicy的基本功能及使用方法,需要的朋友可以參考下2019-09-09Spring多線程通過@Scheduled實(shí)現(xiàn)定時(shí)任務(wù)
這篇文章主要介紹了Spring多線程通過@Scheduled實(shí)現(xiàn)定時(shí)任務(wù),@Scheduled?定時(shí)任務(wù)調(diào)度注解,是spring定時(shí)任務(wù)中最重要的,下文關(guān)于其具體介紹,需要的小伙伴可以參考一下2022-05-05SpringBoot 如何自定義項(xiàng)目啟動(dòng)信息打印
這篇文章主要介紹了SpringBoot 如何自定義項(xiàng)目啟動(dòng)信息打印方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java調(diào)用C++動(dòng)態(tài)庫超詳細(xì)步驟講解(附源碼)
C語言因其高效和接近硬件的特性,時(shí)常會(huì)被用在性能要求較高或者需要直接操作硬件的場合,這篇文章主要介紹了Java調(diào)用C++動(dòng)態(tài)庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04