## Uses of Class
org.optaplanner.core.impl.heuristic.selector.common.iterator.SelectionIterator

- Packages that use SelectionIterator
  Package | Description
  --- | ---
  org.optaplanner.core.impl.heuristic.selector.common.iterator |
  org.optaplanner.core.impl.heuristic.selector.entity.decorator |
  org.optaplanner.core.impl.heuristic.selector.move.composite |
  org.optaplanner.core.impl.heuristic.selector.value.decorator |

- - ### Uses of SelectionIterator in org.optaplanner.core.impl.heuristic.selector.common.iterator

    Subclasses of SelectionIterator in org.optaplanner.core.impl.heuristic.selector.common.iterator
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AbstractOriginalChangeIterator<S extends Move>` |
    `class` | `AbstractOriginalSwapIterator<S,​SubS>` |
    `class` | `AbstractRandomChangeIterator<S extends Move>` |
    `class` | `AbstractRandomSwapIterator<S,​SubS>` |
    `class` | `CachedListRandomIterator<S>` | This `Iterator` does not shuffle and is never ending.
    `class` | `UpcomingSelectionIterator<S>` | IMPORTANT: The constructor of any subclass of this abstract class, should never call any of its child `Selector`'s `Iterator.hasNext()` or `Iterator.next()` methods, because that can cause descendant `Selector`s to be selected too early (which breaks `MimicReplayingEntitySelector`).

  - ### Uses of SelectionIterator in org.optaplanner.core.impl.heuristic.selector.entity.decorator

    Subclasses of SelectionIterator in org.optaplanner.core.impl.heuristic.selector.entity.decorator
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `FilteringEntitySelector.JustInTimeFilteringEntityIterator` |

  - ### Uses of SelectionIterator in org.optaplanner.core.impl.heuristic.selector.move.composite

    Subclasses of SelectionIterator in org.optaplanner.core.impl.heuristic.selector.move.composite
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `CartesianProductMoveSelector.OriginalCartesianProductMoveIterator` |
    `class` | `CartesianProductMoveSelector.RandomCartesianProductMoveIterator` |
    `class` | `UnionMoveSelector.RandomUnionMoveIterator` |

  - ### Uses of SelectionIterator in org.optaplanner.core.impl.heuristic.selector.value.decorator

    Subclasses of SelectionIterator in org.optaplanner.core.impl.heuristic.selector.value.decorator
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `FilteringValueSelector.JustInTimeFilteringValueIterator` |
    `protected class` | `InitializedValueSelector.JustInTimeInitializedValueIterator` |