天天看點

Java中ArrayList remove會遇到的坑前言

平時最常用的莫過于<code>ArrayList</code>和<code>HashMap</code>了,面試的時候也是問答的常客。先不去管容量、負載因子什麼的,就是簡單的使用也會遇到坑。

<a></a>

經常遇到的一個場景是:周遊list, 然後找到合适條件的給删除掉,比如删除所有的偶數。

看起來好像沒問題,加入面試的時候當面問:輸出結果是什麼?再問真不會報錯嗎?再問結果是什麼?

報錯

結果是空list

結果是[1, 2, 5]

[1, 3, 4]

報錯: java.lang.UnsupportedOperationException

否,報錯java.util.ConcurrentModificationException

報錯: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2

這是很好的習慣, 不像開頭那樣每次循環都計算一次size,而且按這種情況還可以再運作的時候報錯。文初的做法不報錯,但結果并不是我們想要的。

報錯: java.util.ConcurrentModificationException

本文轉自Ryan.Miao部落格園部落格,原文連結:http://www.cnblogs.com/woshimrf/p/java-arryalist-remove.html,如需轉載請自行聯系原作者