Bug in ArrayList iterator
Chris Hegarty
chris.hegarty at oracle.com
Wed Jan 7 11:20:57 UTC 2015
On 07/01/15 10:57, Stanislav Baiduzhyi wrote:
> On Wednesday 07 January 2015 10:56:01 Chris Hegarty wrote:
>> public boolean hasNext() {
>> - return cursor != size;
>> + return cursor != itrSize;
>> }
>
> If the user will invoke list.remove(E) to remove current or previous element
> then iterator will be skipping some elements.
If this happens, then next() and/or remove() will throw CME.
Throwing ConcurrentModification
> in hasNext() looks better in such case.
It is not clear to me that users would be expecting CME from hasNext(),
whereas it is more next() and remove() is more obvious.
-Chris.
More information about the core-libs-dev
mailing list