在項目的開發過程中,一定少不了的是對Java集合中的List接觸。項目中對List的刪掉也是一種常見的操作,看上這個操作也沒什么好說的樣子,但是在項目開發中也是最容易出錯的地方,特別是對於新手。有時候,我們在開發的時候不注意也會踩進這個坑。
下面的代碼看上去好像問題,但是運行報IndexOutOfBoundsException。
看控制台輸出的打印出來的信息,我們知道List的Size發生了變化,但是Index的沒有改變,當Index起出Size的大小時,就報IndexOutOfBoundsException。
下面這種情況還坑,比較難一眼看出來,因為它沒有報IndexOutOfBoundsException異常,刪除后不是你想要的List結果。
運行程序沒有報錯,但是輸出的結果不是想要的,是不是很坑。分析一下原因:List中的數據的位置發生了變化,如下圖的右邊為刪除后的List數據的位置.
對於上面的坑,總的來說就是List的發生了變化,但是判斷條件沒有做出調整,所以導致以上的問題。
那么,可以安全的刪除List的方法可能有好多, 但是當我遇到List的刪除的時候,我用以下這種就可以了。
這種方法是從列表的后面開始刪掉。
網上可能還有比較多的方法來安全的刪除,但是這種在我開發項目時候遇到List的刪掉已經夠用了!