Class LiterallySignedStringMap
- java.lang.Object
-
- it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<java.lang.CharSequence>
-
- it.unimi.dsi.util.LiterallySignedStringMap
-
- All Implemented Interfaces:
it.unimi.dsi.fastutil.Function<java.lang.CharSequence,java.lang.Long>
,it.unimi.dsi.fastutil.objects.Object2LongFunction<java.lang.CharSequence>
,StringMap<MutableString>
,java.io.Serializable
,java.util.function.Function<java.lang.CharSequence,java.lang.Long>
,java.util.function.ToLongFunction<java.lang.CharSequence>
public class LiterallySignedStringMap extends it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<java.lang.CharSequence> implements StringMap<MutableString>, java.io.Serializable
A string map based on a function signed using the original list of strings.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 fullStringMap
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 ofCharSequence
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.A typical usage of this class pairs a
FrontCodedStringList
with some kind of succinct structure from Sux4J.- Since:
- 1.0.8
- Author:
- Sebastiano Vigna
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends java.lang.CharSequence>
function
The underlying map.protected it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString>
list
The underlying list.protected int
size
The size oflist
.
-
Constructor Summary
Constructors Constructor Description LiterallySignedStringMap(it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends java.lang.CharSequence> function, it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString> list)
Creates a new shift-add-xor signed string map using a given hash map.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
containsKey(java.lang.Object o)
java.lang.Long
get(java.lang.Object o)
Deprecated.long
getLong(java.lang.Object o)
it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString>
list()
Returns a list view of the domain of this string map (optional operation).static void
main(java.lang.String[] arg)
int
size()
-
Methods inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction
defaultReturnValue, defaultReturnValue
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods 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 Detail
-
function
protected final it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends java.lang.CharSequence> function
The underlying map.
-
list
protected final it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString> list
The underlying list.
-
size
protected final int size
The size oflist
.
-
-
Constructor Detail
-
LiterallySignedStringMap
public LiterallySignedStringMap(it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends java.lang.CharSequence> function, it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString> list)
Creates a new shift-add-xor signed string map using a given hash map.- Parameters:
function
- a function mapping each string inlist
to its ordinal position.list
- a list of strings.
-
-
Method Detail
-
getLong
public long getLong(java.lang.Object o)
- Specified by:
getLong
in interfaceit.unimi.dsi.fastutil.objects.Object2LongFunction<java.lang.CharSequence>
-
get
@Deprecated public java.lang.Long get(java.lang.Object o)
Deprecated.- Specified by:
get
in interfaceit.unimi.dsi.fastutil.Function<java.lang.CharSequence,java.lang.Long>
- Specified by:
get
in interfaceit.unimi.dsi.fastutil.objects.Object2LongFunction<java.lang.CharSequence>
-
size
public int size()
- Specified by:
size
in interfaceit.unimi.dsi.fastutil.Function<java.lang.CharSequence,java.lang.Long>
-
containsKey
public boolean containsKey(java.lang.Object o)
- Specified by:
containsKey
in interfaceit.unimi.dsi.fastutil.Function<java.lang.CharSequence,java.lang.Long>
-
list
public it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString> list()
Description copied from interface:StringMap
Returns 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:
list
in interfaceStringMap<MutableString>
- Returns:
- a list view of the domain of this string map, or
null
if this map does not support this operation.
-
main
public static void main(java.lang.String[] arg) throws java.io.IOException, com.martiansoftware.jsap.JSAPException, java.lang.ClassNotFoundException, java.lang.SecurityException, java.lang.NoSuchMethodException
- Throws:
java.io.IOException
com.martiansoftware.jsap.JSAPException
java.lang.ClassNotFoundException
java.lang.SecurityException
java.lang.NoSuchMethodException
-
-