Class LiterallySignedStringMap
- All Implemented Interfaces:
StringMap<MutableString>, it.unimi.dsi.fastutil.Function<CharSequence, Long>, it.unimi.dsi.fastutil.objects.Object2LongFunction<CharSequence>, it.unimi.dsi.fastutil.Size64, Serializable, Function<CharSequence, Long>, ToLongFunction<CharSequence>
A minimal perfect hash function maps a set of string to an initial segment of the natural
numbers, but will actually map any string to that segment. We can check that
a string is part of the key set by hashing it to a value h, and checking that the h-th
string of the original list does coincide. Since, moreover, this class implements StringMap,
and thus exposes the original list, we have a two-way
dictionary. In other words, this is a full StringMap implementation.
Note that some care must be exercised: CharSequence's contract does not
prescribe equality by content, so if your function behaves badly on some implementations of
CharSequence you might make the checks fail. To avoid difficulties, the
constructor checks that every string in the list is hashed correctly.
For the same reason, this class implements StringMap<MutableString>, and
requires that the list of strings provided at construction time is actually a list of
mutable strings.
- Since:
- 2.0
- Author:
- Sebastiano Vigna
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends CharSequence> The underlying map.protected final it.unimi.dsi.fastutil.objects.ObjectBigList<? extends MutableString> The underlying list.protected final longThe size oflist.Fields inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction
defRetValue -
Constructor Summary
ConstructorsConstructorDescriptionLiterallySignedStringMap(it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends CharSequence> function, it.unimi.dsi.fastutil.objects.ObjectBigList<? extends MutableString> list) Creates a new shift-add-xor signed string map using a given hash map. -
Method Summary
Modifier and TypeMethodDescriptionbooleanDeprecated.longit.unimi.dsi.fastutil.objects.ObjectBigList<? extends MutableString> list()Returns a list view of the domain of this string map (optional operation).static voidintsize()Deprecated.longsize64()Returns the intended number of keys in this function, or -1 if no such number exists.Methods inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction
defaultReturnValue, defaultReturnValueMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface it.unimi.dsi.fastutil.Function
apply, clearMethods inherited from interface it.unimi.dsi.fastutil.objects.Object2LongFunction
andThen, andThenByte, andThenChar, andThenDouble, andThenFloat, andThenInt, andThenLong, andThenObject, andThenReference, andThenShort, applyAsLong, composeByte, composeChar, composeDouble, composeFloat, composeInt, composeLong, composeObject, composeReference, composeShort, defaultReturnValue, defaultReturnValue, getOrDefault, getOrDefault, put, put, remove, removeLong
-
Field Details
-
function
The underlying map. -
list
The underlying list. -
size
protected final long sizeThe size oflist.
-
-
Constructor Details
-
LiterallySignedStringMap
public LiterallySignedStringMap(it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends CharSequence> function, it.unimi.dsi.fastutil.objects.ObjectBigList<? extends MutableString> list) Creates a new shift-add-xor signed string map using a given hash map.- Parameters:
function- a function mapping each string inlistto its ordinal position.list- a list of strings.
-
-
Method Details
-
getLong
- Specified by:
getLongin interfaceit.unimi.dsi.fastutil.objects.Object2LongFunction<CharSequence>
-
get
Deprecated.- Specified by:
getin interfaceit.unimi.dsi.fastutil.Function<CharSequence, Long>- Specified by:
getin interfaceit.unimi.dsi.fastutil.objects.Object2LongFunction<CharSequence>
-
size64
public long size64()Description copied from interface:StringMapReturns the intended number of keys in this function, or -1 if no such number exists.Most function implementations will have some knowledge of the intended number of keys in their domain. In some cases, however, this might not be possible. This default implementation, in particular, returns -1.
- Specified by:
size64in interfaceit.unimi.dsi.fastutil.Size64- Specified by:
size64in interfaceStringMap<MutableString>- Returns:
- the intended number of keys in this function, or -1 if that number is not available.
-
size
Deprecated.Description copied from interface:StringMap- Specified by:
sizein interfaceit.unimi.dsi.fastutil.Function<CharSequence, Long>- Specified by:
sizein interfaceit.unimi.dsi.fastutil.Size64- Specified by:
sizein interfaceStringMap<MutableString>
-
containsKey
- Specified by:
containsKeyin interfaceit.unimi.dsi.fastutil.Function<CharSequence, Long>
-
list
Description copied from interface:StringMapReturns a list view of the domain of this string map (optional operation).Note that the list view acts as an inverse of the mapping implemented by this map.
- Specified by:
listin interfaceStringMap<MutableString>- Returns:
- a list view of the domain of this string map, or
nullif this map does not support this operation.
-
main
public static void main(String[] arg) throws IOException, com.martiansoftware.jsap.JSAPException, ClassNotFoundException, SecurityException, NoSuchMethodException - Throws:
IOExceptioncom.martiansoftware.jsap.JSAPExceptionClassNotFoundExceptionSecurityExceptionNoSuchMethodException
-