public interface ValueRange<T>
PlanningVariable.
These values might be stored in memory as a Collection (usually a List or Set),
but if the values are numbers, they can also be stored in memory by their bounds
to use less memory and provide more opportunities.
Prefer using CountableValueRange (which extends this interface) whenever possible.
A ValueRange is stateful (unlike a ValueSelector which is stateless).
Implementations must be immutable.
An implementation must extend AbstractCountableValueRange or AbstractUncountableValueRange
to ensure backwards compatibility in future versions.
| Modifier and Type | Method and Description |
|---|---|
boolean |
contains(T value) |
Iterator<T> |
createRandomIterator(Random workingRandom)
Select in random order, but without shuffling the elements.
|
boolean |
isEmpty()
In a
CountableValueRange, this must be consistent with CountableValueRange.getSize(). |
boolean isEmpty()
CountableValueRange, this must be consistent with CountableValueRange.getSize().boolean contains(T value)
value - sometimes nullIterator<T> createRandomIterator(Random workingRandom)
workingRandom - never null, the Random to use when any random number is needed,
so EnvironmentMode.REPRODUCIBLE works correctly. RandomUtils can be useful too.Copyright © 2006–2020 JBoss by Red Hat. All rights reserved.