i've been strugling bug since while , don't know problem is. code :
arraylist<string> ltmpindicsdesc = new arraylist<string>(indicsdesc); arraylist<string> ltmpindicsavailablemark = new arraylist<string>(indicsavailablemark); (iterator<string> itindicsdesc = ltmpindicsdesc.iterator(); itindicsdesc.hasnext();) { string stmpindicsdesc = itindicsdesc.next(); (iterator<string> itindicsavailablemark = ltmpindicsavailablemark.iterator(); itindicsavailablemark.hasnext();) { string stmpindicsavailablemark = itindicsavailablemark.next(); if (stmpindicsdesc.touppercase().equals(stmpindicsavailablemark.touppercase())) { itindicsdesc.remove(); } } } it raise illegalstateexception on remove call.
i've been wondering if problem appear because removing last item of list seems bug in middle of process.
can guys give me explanation please ?
you removing element ltmpindicsdesc list inside inner loop. means inner loop might try remove same element twice, explain exception got. should break inner loop after removing element:
for (iterator<string> itindicsdesc = ltmpindicsdesc.iterator(); itindicsdesc.hasnext();) { string stmpindicsdesc = itindicsdesc.next(); (iterator<string> itindicsavailablemark = ltmpindicsavailablemark.iterator(); itindicsavailablemark.hasnext();) { string stmpindicsavailablemark = itindicsavailablemark.next(); if (stmpindicsdesc.touppercase().equals(stmpindicsavailablemark.touppercase())) { itindicsdesc.remove(); break; // added } } }
Comments
Post a Comment