V
- VariableT
- Valuepublic class AssignmentMap<V extends Variable<V,T>,T extends Value<V,T>> extends AssignmentAbstract<V,T>
HashMap
to store values of all the variables of the model.
This class is slower to store and retrieve a value than AssignmentArray
, but
faster in retrieving a collection of assigned variables and values (methods
Assignment.assignedVariables()
and Assignment.assignedValues()
).Assignment
iContexts, iHasInitialzedContext
Constructor and Description |
---|
AssignmentMap()
Creates an empty assignment
|
AssignmentMap(Assignment<V,T> assignment)
Creates a copy of an existing assignment
|
AssignmentMap(AssignmentContextHolder<V,T> contexts)
Creates an empty assignment
|
Modifier and Type | Method and Description |
---|---|
Collection<T> |
assignedValues()
The list of assigned values in the assignment.
|
Collection<V> |
assignedVariables()
The list of assigned variables in the assignment.
|
long |
getIteration(V variable)
Returns iteration of the last assignment.
|
protected T |
getValueInternal(V variable)
Returns assignment of a variable, null if not assigned.
|
int |
nrAssignedVariables()
Number of assigned variables in this assignment.
|
protected void |
setValueInternal(long iteration,
V variable,
T value)
Sets an assignment to a variable (unassigns a variable if the given value is null).
|
assign, assign, clearContext, ensureInitializedContext, getAssignmentContext, getIndex, getValue, nrUnassignedVariables, unassign, unassign, unassignedVariables
public AssignmentMap(AssignmentContextHolder<V,T> contexts)
contexts
- assignment context holderpublic AssignmentMap()
public AssignmentMap(Assignment<V,T> assignment)
assignment
- current assignmentpublic long getIteration(V variable)
Assignment
Variable.getLastIteration()
.variable
- problem variablepublic Collection<V> assignedVariables()
Assignment
Assignment.getValue(Variable)
is not null in this assignment.
Replacement for Model.assignedVariables()
.public Collection<T> assignedValues()
Assignment
Assignment.getValue(Variable)
for all assigned variables in this assignment.assignedValues
in interface Assignment<V extends Variable<V,T>,T extends Value<V,T>>
assignedValues
in class AssignmentAbstract<V extends Variable<V,T>,T extends Value<V,T>>
public int nrAssignedVariables()
Assignment
Model.nrAssignedVariables()
.nrAssignedVariables
in interface Assignment<V extends Variable<V,T>,T extends Value<V,T>>
nrAssignedVariables
in class AssignmentAbstract<V extends Variable<V,T>,T extends Value<V,T>>
protected T getValueInternal(V variable)
AssignmentAbstract
getValueInternal
in class AssignmentAbstract<V extends Variable<V,T>,T extends Value<V,T>>
variable
- a variable in questionprotected void setValueInternal(long iteration, V variable, T value)
AssignmentAbstract
setValueInternal
in class AssignmentAbstract<V extends Variable<V,T>,T extends Value<V,T>>
iteration
- current iterationvariable
- a variable to be assignedvalue
- new assignment, null if to be unassigned