Package it.univr.di.labeledvalue
Class LabeledIntSimpleMap
java.lang.Object
it.univr.di.labeledvalue.AbstractLabeledIntMap
it.univr.di.labeledvalue.LabeledIntSimpleMap
- All Implemented Interfaces:
LabeledIntMap
,Serializable
- Direct Known Subclasses:
LabeledIntSimpleMap.LabeledIntNotMinMapView
Simple implementation of
LabeledIntMap
interface without minimization. This class is provided only to give an evidence that
without minimization of labeled value sets, any CSTN algorithm can be very slowly.- Version:
- $Rev: 851 $
- Author:
- Roberto Posenato
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
A read-only view of an objectNested classes/interfaces inherited from interface it.univr.di.labeledvalue.LabeledIntMap
LabeledIntMap.LabeledIntMapView
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) it.unimi.dsi.fastutil.objects.Object2IntMap
<Label> Map of label(package private) it.unimi.dsi.fastutil.objects.Object2IntMap
<Label> Counter of labeled value updates.Fields inherited from class it.univr.di.labeledvalue.AbstractLabeledIntMap
count, labeledValueRE, labeledValueSetREPattern, optimize, splitterEntryPattern, splitterPair, valueRE, valueREPattern
Fields inherited from interface it.univr.di.labeledvalue.LabeledIntMap
entryComparator
-
Constructor Summary
ConstructorsConstructorDescriptionNecessary constructor for the factory.LabeledIntSimpleMap
(boolean optimize) Necessary constructor for the factory.Constructor to clone the structure.LabeledIntSimpleMap
(LabeledIntMap lvm, boolean optimize) Constructor to clone the structure. -
Method Summary
Modifier and TypeMethodDescriptionboolean
alreadyRepresents
(Label newLabel, int newValue) void
clear()
Remove all entries of the map.it.unimi.dsi.fastutil.objects.ObjectSet
<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> entrySet()
This method returns a copy of the view of the map.it.unimi.dsi.fastutil.objects.ObjectSet
<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> entrySet
(@NotNull it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> setToReuse) This method returns a copy of the view of the map.int
it.unimi.dsi.fastutil.objects.ObjectSet
<Label> keySet()
A copy of all labels in the map.it.unimi.dsi.fastutil.objects.ObjectSet
<Label> FactorynewInstance
(boolean optimize) FactorynewInstance
(LabeledIntMap lim) FactorynewInstance
(LabeledIntMap lim, boolean optimize) Factoryboolean
Put a label with valuei
if labell
is not null and there is not a labeled value in the set with labell
or it is present but with a value higher thanl
.void
putForcibly
(Label l, int i) Put the labeled value without any control.int
Remove the labell
from the map.int
size()
it.unimi.dsi.fastutil.ints.IntSet
values()
Methods inherited from class it.univr.di.labeledvalue.AbstractLabeledIntMap
entryAsString, entryAsString, equals, hashCode, isEmpty, parse, parse, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface it.univr.di.labeledvalue.LabeledIntMap
getMaxValue, getMaxValueSubsumedBy, getMinLabeledValue, getMinValue, getMinValueAmongLabelsWOUnknown, getMinValueConsistentWith, getMinValueSubsumedBy, putAll
-
Field Details
-
Constructor Details
-
LabeledIntSimpleMap
Constructor to clone the structure. For optimization issue, this method clone only LabeledIntTreeMap object.- Parameters:
lvm
- the LabeledValueTreeMap to clone. If lvm is null, this will be an empty map.
-
LabeledIntSimpleMap
Constructor to clone the structure. For optimization issue, this method clone only LabeledIntTreeMap object.- Parameters:
lvm
- the LabeledValueTreeMap to clone. If lvm is null, this will be an empty map.optimize
- true for having the label shortest as possible, false otherwise. For example, the set {(0, ¬C), (1, C)} is represented as {(0, ⊡), (1, C)} if this parameter is true.
-
LabeledIntSimpleMap
public LabeledIntSimpleMap()Necessary constructor for the factory. The internal structure is built and empty. -
LabeledIntSimpleMap
public LabeledIntSimpleMap(boolean optimize) Necessary constructor for the factory. The internal structure is built and empty.- Parameters:
optimize
- true for having the label shortest as possible, false otherwise. For example, the set {(0, ¬C), (1, C)} is represented as {(0, ⊡), (1, C)} if this parameter is true.
-
-
Method Details
-
alreadyRepresents
- Parameters:
newLabel
- aLabel
object.newValue
- the new value.- Returns:
- true if the (newValue, newLabel) is already represented in the map.
-
clear
public void clear()Description copied from interface:LabeledIntMap
Remove all entries of the map.- See Also:
-
entrySet
public it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> entrySet()This method returns a copy of the view of the map. Any modification of the map IS NOT propagated to the return set.
In other word, it is possible to iterate on this map for modifying the original map without worried to lose any element.- Returns:
- The set of all entries of the map.
- See Also:
-
entrySet
public it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> entrySet(@NotNull @NotNull it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> setToReuse) This method returns a copy of the view of the map. Any modification of the map IS NOT propagated to the return set.
In other word, it is possible to iterate on this map for modifying the original map without worried to lose any element.- Parameters:
setToReuse
- aObjectSet
object.- Returns:
- The set of all entries of the map.
- See Also:
-
get
- Parameters:
l
- anLabel
object.- Returns:
- the value associated to
l
if it exists,Constants.INT_NULL
otherwise.
-
keySet
Description copied from interface:LabeledIntMap
A copy of all labels in the map. The set must not be connected with the map.- Returns:
- a copy of all labels in the map.
-
keySet
public it.unimi.dsi.fastutil.objects.ObjectSet<Label> keySet(it.unimi.dsi.fastutil.objects.ObjectSet<Label> setToReuse) - Parameters:
setToReuse
- a set to be reused for filling with the copy of labels- Returns:
- a copy of all labels in the map. The set must not be connected with the map.
-
newInstance
Description copied from interface:LabeledIntMap
Factory- Returns:
- an object of type LabeledIntMap.
-
newInstance
Factory- Parameters:
optimize
- true for having the label shortest as possible, false otherwise. For example, the set {(0, ¬C), (1, C)} is represented as {(0, ⊡), (1, C)} if this parameter is true.- Returns:
- an object of type LabeledIntMap.
-
newInstance
Description copied from interface:LabeledIntMap
Factory- Parameters:
lim
- an object to clone.- Returns:
- an object of type LabeledIntMap.
-
newInstance
Factory- Parameters:
lim
- an object to clone.optimize
- true for having the label shortest as possible, false otherwise. For example, the set {(0, ¬C), (1, C)} is represented as {(0, ⊡), (1, C)} if this parameter is true.- Returns:
- an object of type LabeledIntMap.
-
put
Description copied from interface:LabeledIntMap
Put a label with valuei
if labell
is not null and there is not a labeled value in the set with labell
or it is present but with a value higher thanl
.Not mandatory: the method can remove or modify other labeled values of the set in order to minimize the labeled values present guaranteeing that no info is lost.
- Parameters:
newLabel
- a not null label.newValue
- a notConstants.INT_NULL
value.- Returns:
- true if
(l,i)
has been inserted. Since an insertion can remove more than one redundant labeled values, it is nonsensical to return "the old value" as expected from a classical put method.
-
putForcibly
Put the labeled value without any control. It is dangerous, but it can help in some cases.- Parameters:
l
- aLabel
object.i
- the new value.
-
remove
Description copied from interface:LabeledIntMap
Remove the labell
from the map. If thel
is not present, it does nothing.- Parameters:
l
- a not null label.- Returns:
- the previous value associated with
l
, orConstants.INT_NULL
if there was no mapping forl
. - See Also:
-
size
public int size()- Specified by:
size
in interfaceLabeledIntMap
- Overrides:
size
in classAbstractLabeledIntMap
- Returns:
- the number of labeled value (value with empty label included).
- See Also:
-
unmodifiable
- Returns:
- a read-only view of this.
-
values
public it.unimi.dsi.fastutil.ints.IntSet values()- Returns:
- the set of all integer present in the map as an ordered list.
-