Class BiMoveStream<Solution_,A,B>

java.lang.Object
ai.timefold.solver.core.impl.neighborhood.stream.BiMoveStream<Solution_,A,B>
Type Parameters:
Solution_ -
A -
B -
All Implemented Interfaces:
InnerMoveStream<Solution_>, MoveStream<Solution_>

@NullMarked public final class BiMoveStream<Solution_,A,B> extends Object implements InnerMoveStream<Solution_>
Accepts two datasets (left and right), coming from two enumerating streams, and provides Move iterators based on the join and filtering of those datasets. The merged iterators provide moves constructed by a move constructor, which accepts instances of type A and B.

There are two types of iterators:

  • Original order iterators, which iterate through all possible combinations of A and B in the original order.
  • Random order iterators, which pick A and B randomly.
Please refer to the respective iterator classes for documentation on their strategies.