java.lang.IllegalStateException異常原因和解決辦法
1、出現(xiàn)該異常場景
Iterator.remove() 迭代刪除 引發(fā)
2、問題定位分析
1. Iterator.remove() 迭代刪除 引發(fā)
重復 remove 導致出現(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)體,重復remove 導致異常
//break;
}
}
}
}問題分析
需要使用next方法迭代出集合中的元素 ,然后才能調(diào)用remove方法,
否則集合可能會因為對同一個Iterator remove了多次而拋出java .lang.IllegalStateException異常。
解決:可在循環(huán)體中 remove 后跳出循環(huán) 使用 break
總結(jié)
到此這篇關于java.lang.IllegalStateException異常原因和解決辦法的文章就介紹到這了,更多相關java.lang.IllegalStateException異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java 自定義Spring框架與Spring IoC相關接口分析
Spring框架是由于軟件開發(fā)的復雜性而創(chuàng)建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于服務器端的開發(fā)2021-10-10
Java實戰(zhàn)項目 醫(yī)院預約掛號系統(tǒng)
本文是一個Java語言編寫的實戰(zhàn)項目,是一個醫(yī)院預約掛號系統(tǒng),主要用到了jdbc+jsp+mysql+ajax等技術,技術含量比較高,感興趣的童鞋跟著小編往下看吧2021-09-09
詳細介紹Java關鍵字throw?throws?Throwable的用法與區(qū)別
這篇文章主要介紹了java中throws與throw及Throwable的用法和區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04
Java注解的Retention和RetentionPolicy實例分析
這篇文章主要介紹了Java注解的Retention和RetentionPolicy,結(jié)合實例形式分析了Java注解Retention和RetentionPolicy的基本功能及使用方法,需要的朋友可以參考下2019-09-09
Spring多線程通過@Scheduled實現(xiàn)定時任務
這篇文章主要介紹了Spring多線程通過@Scheduled實現(xiàn)定時任務,@Scheduled?定時任務調(diào)度注解,是spring定時任務中最重要的,下文關于其具體介紹,需要的小伙伴可以參考一下2022-05-05
Java調(diào)用C++動態(tài)庫超詳細步驟講解(附源碼)
C語言因其高效和接近硬件的特性,時常會被用在性能要求較高或者需要直接操作硬件的場合,這篇文章主要介紹了Java調(diào)用C++動態(tài)庫的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-04-04

