第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么在foreach中remove最后一個(gè)元素會(huì)報(bào)錯(cuò)?

為什么在foreach中remove最后一個(gè)元素會(huì)報(bào)錯(cuò)?

眼眸繁星 2019-03-01 11:06:16
public static void main(String[] args) { List<String> a = new ArrayList<String>(); a.add("1"); a.add("2"); a.add("23"); for (String temp : a) { if ("23".equals(temp)) { a.remove(temp); } } System.out.println(a); } Exception in thread "main" java.util.ConcurrentModificationExceptionat java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)at java.util.ArrayList$Itr.next(ArrayList.java:851)at wan.ForEach.main(ForEach.java:22)
查看完整描述

5 回答

?
慕的地8271018

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

樓上說(shuō)的很官方了,說(shuō)的直白一點(diǎn)就是for(Object obj:list)這種方式,是不能調(diào)用list的remove方法進(jìn)行刪除元素的操作的,否則會(huì)拋出異常,因?yàn)镮terator需要確定的結(jié)構(gòu),所以想刪除有兩種方法,一種是復(fù)制一個(gè)列表,通過(guò)循環(huán)新列表來(lái)remove老列表中的元素,還有一種是使用for(int i; i<count; i++)這種形式進(jìn)行循環(huán),這樣是可以通過(guò)游標(biāo)進(jìn)行刪除的,自己注意下數(shù)組下標(biāo)不要越界就行了。

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

foreach是通過(guò)迭代器來(lái)實(shí)現(xiàn)的,使用迭代器遍歷元素時(shí),容器不能試圖改變?nèi)萜鞯慕Y(jié)構(gòu),如remove、add操作會(huì)拋出異常; 可以使用迭代器的remove方法刪除元素。

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

樓上說(shuō)得很明確了,這里我說(shuō)出兩種簡(jiǎn)單的解決方式
1.迭代器刪除
2.復(fù)制list來(lái)遍歷,然后操作原始的list.
當(dāng)然推薦迭代器刪除

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

你在數(shù)雞蛋的時(shí)候別人偷偷往你籃子了放雞蛋或者拿走雞蛋都會(huì)導(dǎo)致你數(shù)的不對(duì) 除非你自己去拿走或者拿進(jìn)雞蛋,你自己才能記住 同樣的道理在程序中也是這樣的

查看完整回答
反對(duì) 回復(fù) 2019-03-01
  • 5 回答
  • 0 關(guān)注
  • 981 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)