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–2018 JBoss by Red Hat. All rights reserved.