Package org.optaplanner.core.impl.heuristic.selector.common.iterator

## Class AbstractRandomSwapIterator<S,​SubS>

- java.lang.Object
- - org.optaplanner.core.impl.heuristic.selector.common.iterator.SelectionIterator<S>
  - - org.optaplanner.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator<S>
    - - org.optaplanner.core.impl.heuristic.selector.common.iterator.AbstractRandomSwapIterator<S,​SubS>

- All Implemented Interfaces:
    `Iterator<S>`

      public abstract class AbstractRandomSwapIterator<S,​SubS>
      extends UpcomingSelectionIterator<S>

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Iterator<SubS>` | `leftSubSelectionIterator` |
    `protected Iterable<SubS>` | `leftSubSelector` |
    `protected Iterator<SubS>` | `rightSubSelectionIterator` |
    `protected Iterable<SubS>` | `rightSubSelector` |

    - ### Fields inherited from class org.optaplanner.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator

      `hasUpcomingSelection, upcomingCreated, upcomingSelection`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractRandomSwapIterator​(Iterable<SubS> leftSubSelector, Iterable<SubS> rightSubSelector)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected S` | `createUpcomingSelection()` |
    `protected abstract S` | `newSwapSelection​(SubS leftSubSelection, SubS rightSubSelection)` |

    - ### Methods inherited from class org.optaplanner.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator

      `hasNext, next, noUpcomingSelection, toString`

    - ### Methods inherited from class org.optaplanner.core.impl.heuristic.selector.common.iterator.SelectionIterator

      `remove`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Iterator

      `forEachRemaining`

- - ### Field Detail

    - #### leftSubSelector

          protected final Iterable<SubS> leftSubSelector

    - #### rightSubSelector

          protected final Iterable<SubS> rightSubSelector

    - #### leftSubSelectionIterator

          protected Iterator<SubS> leftSubSelectionIterator

    - #### rightSubSelectionIterator

          protected Iterator<SubS> rightSubSelectionIterator

  - ### Constructor Detail

    - #### AbstractRandomSwapIterator

          public AbstractRandomSwapIterator​(Iterable<SubS> leftSubSelector,
                                            Iterable<SubS> rightSubSelector)

  - ### Method Detail

    - #### createUpcomingSelection

          protected S createUpcomingSelection()

      Specified by:
        `createUpcomingSelection` in class `UpcomingSelectionIterator<S>`

    - #### newSwapSelection

          protected abstract S newSwapSelection​(SubS leftSubSelection,
                                                SubS rightSubSelection)