You get unexpected results when using cursors. For example, the elementAt function fails for the given cursor or returns an unexpected element.
You have used an undefined cursor. Cursors become undefined when an element is added to or removed from the collection.
Cursors that become undefined must be rebuilt with an appropriate operation (for example, locate) before they are used again. Rebuilding is especially important for removing all elements with a given property from a collection. Elements cannot be removed by coding a cursor iteration. Use the removeAll function that takes a predicate function as its argument.
Introduction
to the Collection Classes
Removing
Elements
Overview
of Iteration
Iteration
with Cursors
Iteration with allElementsDo
Removing an Element from
a Collection
Using Cursors to
Locate and Access Elements
Using Cursors to
Iterate Over a Collection
Using allElementsDo
and Applicators to Iterate Over a Collection
Cursors vs. Exception
Handling
Instantiating the
Collection Classes