Class LabeledIntHierarchyMap
- All Implemented Interfaces:
LabeledIntMap, Serializable
- Direct Known Subclasses:
LabeledIntHierarchyMap.LabeledIntHierarchyMapView
LabeledIntMap interface.
When creating an object, it is possible to specify if the labeled values represented in the map should be maintained as the minimal equivalent ones.
- Version:
- $Rev: 1153 $
- Author:
- Roberto Posenato
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classSimple class to represent a labeled value in the hierarchy.static classA read-only view of an objectNested classes/interfaces inherited from interface LabeledIntMap
LabeledIntMap.LabeledIntMapViewModifier and TypeInterfaceDescriptionstatic interfaceA read-only view of an object -
Field Summary
FieldsModifier and TypeFieldDescription(package private) LabeledIntHierarchyMap.HierarchyNodeRoot of hierarchybooleanJust to force the control that, after each put, the format of hierarchy is still valid.Fields inherited from class AbstractLabeledIntMap
count, labeledValueRE, labeledValueSetREPattern, optimize, splitterEntryPattern, splitterPair, valueRE, valueREPatternModifier and TypeFieldDescription(package private) intThe number of elements in the map(package private) static final StringA labeled value as a regular expression.(package private) static final PatternMatcher for a set of labeled values.(package private) booleanOptimize.(package private) static final PatternPattern for splitting a set of labeled values.(package private) static final Pattern(package private) static final StringAdmissible values as a regular expression.(package private) static final PatternPattern of valueREStringFields inherited from interface LabeledIntMap
entryComparatorModifier and TypeFieldDescriptionstatic final Comparator<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> A natural comparator for Entry<Label>. -
Constructor Summary
ConstructorsConstructorDescriptionNecessary constructor for the factory.Constructor to clone the structure. -
Method Summary
Modifier and TypeMethodDescriptionbooleanalreadyRepresents(Label newLabel, int newValue) final voidclear()Remove all entries from the map.final it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> entrySet()The set of all map entries.intfinal intReturns the value associated with thelif it exists, otherwise the minimal value among all labels consistent withl.intReturns the minimal value among those associated with labels subsumed bylif it exists,Constants.INT_NULLotherwise.it.unimi.dsi.fastutil.objects.ObjectSet<Label> keySet()A copy of all labels in the map.static voidfinal LabeledIntHierarchyMapFactorynewInstance(boolean optimize1) Factoryfinal LabeledIntHierarchyMapnewInstance(LabeledIntMap lim) FactorynewInstance(LabeledIntMap lim, boolean optimize1) Factoryfinal booleanPut a label with valueiif labellis not null and there is no labeled value in the set with labell, or it is present but with a value higher thanl.voidputForcibly(Label l, int i) Put the labeled value without any control.final intRemove the labellfrom the map.final intsize()it.unimi.dsi.fastutil.ints.IntSetvalues()Methods inherited from class AbstractLabeledIntMap
entryAsString, entryAsString, equals, hashCode, isEmpty, parse, parse, toStringModifier and TypeMethodDescription(package private) static StringentryAsString(it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label> entry) static StringentryAsString(Label label, int value) final booleanfinal inthashCode()booleanisEmpty()static LabeledIntMapstatic LabeledIntMapparse(String inputMap, Class<? extends LabeledIntMap> labeledIntMapClass) Parse a string representing a LabeledValueTreeMap and return an object containing the labeled values represented by the string.final StringtoString()Methods inherited from interface LabeledIntMap
getMaxValue, getMaxValueSubsumedBy, getMinLabeledValue, getMinValue, getMinValueAmongLabelsWOUnknown, putAllModifier and TypeMethodDescriptiondefault intdefault intReturns the value associated with thelif it exists, otherwise the maximal value among all labels consistent withl.default it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label> default intdefault intdefault voidputAll(LabeledIntMap inputMap) Put all elements of `inputMap` into the current one without making a defensive copy.
-
Field Details
-
wellFormatCheck
public boolean wellFormatCheckJust to force the control that, after each put, the format of hierarchy is still valid. Don't set true in a production program! -
root
Root of hierarchyDesign choice: the set of labeled values of this map is organized as a double-linked hierarchy of labeled values. A labeled value (label, value) is the father of another labeled value (label1, value1) if label1 subsumes label and value1 < value.
-
-
Constructor Details
-
LabeledIntHierarchyMap
LabeledIntHierarchyMap(LabeledIntMap lvm) Constructor to clone the structure.- Parameters:
lvm- the LabeledValueTreeMap to clone. If LVM is null, this will be an empty map.
-
LabeledIntHierarchyMap
LabeledIntHierarchyMap()Necessary constructor for the factory. The internal structure is built and empty.
-
-
Method Details
-
main
-
alreadyRepresents
- Parameters:
newLabel- aLabelobject.newValue- the new value.- Returns:
- true if the current map can represent the value. In a positive case, the addition of the element does not change the map. If it returns false, then adding the value to the map would modify the map.
-
clear
public final void clear()Description copied from interface:LabeledIntMapRemove all entries from the map.- See Also:
-
entrySet
public final it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> entrySet()Description copied from interface:LabeledIntMapThe set of all map entries. The set is a view of the map. A modification of the map is reflected in the entries of the returned set.
If it is necessary to scan all the entries to modify the map, the only right way is to consider the keys returned byLabeledIntMap.keySet()and use methods likeLabeledIntMap.remove(Label)and/orLabeledIntMap.put(Label, int).- Returns:
- The set of all map entries.
- See Also:
-
get
- Parameters:
l- anLabelobject.- Returns:
- the value associated to
lif it exists,Constants.INT_NULLotherwise.
-
getMinValueConsistentWith
Description copied from interface:LabeledIntMapReturns the value associated with thelif it exists, otherwise the minimal value among all labels consistent withl.- Parameters:
l- If it is null,Constants.INT_NULLis returned.- Returns:
- the value associated with the
lif it exists or the minimal value among values associated with labels consistent withl. If no labels are consistent byl,Constants.INT_NULLis returned.
-
getMinValueSubsumedBy
Description copied from interface:LabeledIntMapReturns the minimal value among those associated with labels subsumed bylif it exists,Constants.INT_NULLotherwise.- Parameters:
l- If it is null,Constants.INT_NULLis returned.- Returns:
- minimal value among those associated with labels subsumed by
lif it exists,Constants.INT_NULLotherwise.
-
keySet
Description copied from interface:LabeledIntMapA copy of all labels in the map.The returned set must not be connected to the map.
The semantics of this method is different from the
Map.keySet()!It can cost time and memory because it duplicates all the keys of the map.
This method allows one to scan all the keys of the map, even if during the scan, some key of the map is removed.
It is important to modify this map using only the method
LabeledIntMap.remove(Label).Method
LabeledIntMap.entrySet()returns a view of the entries of the map. Therefore, it cannot be used to scan or modify the map.- Returns:
- a copy of all labels in the map.
-
newInstance
-
newInstance
Factory- Parameters:
optimize1- true for having the label as short 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:LabeledIntMapFactory- Parameters:
lim- a map to clone.- Returns:
- an object of type LabeledIntMap.
-
newInstance
Factory- Parameters:
lim- an object to clone.optimize1- true for having the label as short 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:LabeledIntMapPut a label with valueiif labellis not null and there is no 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 to minimize the labeled values present, guaranteeing that no info is lost.
- Parameters:
newLabel- a non-null label.newValue- a notConstants.INT_NULLvalue.- Returns:
- true if
(l,i)has been inserted. Since an insertion can remove more than one redundant labeled value, it is nonsensical to return "the old value" as expected from a classical put method.
-
putForcibly
-
remove
Description copied from interface:LabeledIntMapRemove the labellfrom the map. If thelis not present, it does nothing.- Parameters:
l- a non-null label.- Returns:
- the previous value associated with
l, orConstants.INT_NULLif there was no mapping forl.
-
size
public final int size()- Specified by:
sizein interfaceLabeledIntMap- Overrides:
sizein classAbstractLabeledIntMap- Returns:
- the number of labeled values (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 values present in the map as an ordered list.
-