public class LiterallySignedStringMap extends it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<CharSequence> implements StringMap<MutableString>, Serializable
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.
A typical usage of this class pairs a FrontCodedStringList with some kind
of succinct structure from Sux4J.
| Modifier and Type | Field and Description |
|---|---|
protected it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends CharSequence> |
function
The underlying map.
|
protected it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString> |
list
The underlying list.
|
protected int |
size
The size of
list. |
| Constructor and Description |
|---|
LiterallySignedStringMap(it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends 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.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
containsKey(Object o) |
Long |
get(Object o) |
long |
getLong(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(String[] arg) |
int |
size() |
clear, defaultReturnValue, defaultReturnValue, put, put, remove, removeLongclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitprotected final it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends CharSequence> function
protected final it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString> list
protected final int size
list.public LiterallySignedStringMap(it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends CharSequence> function, it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString> list)
function - a function mapping each string in list to its ordinal position.list - a list of strings.public long getLong(Object o)
getLong in interface it.unimi.dsi.fastutil.objects.Object2LongFunction<CharSequence>public Long get(Object o)
get in interface it.unimi.dsi.fastutil.Function<CharSequence,Long>get in class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<CharSequence>public int size()
size in interface it.unimi.dsi.fastutil.Function<CharSequence,Long>public boolean containsKey(Object o)
containsKey in interface it.unimi.dsi.fastutil.Function<CharSequence,Long>public it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString> list()
StringMapNote that the list view acts as an inverse of the mapping implemented by this map.
list in interface StringMap<MutableString>null if this map does
not support this operation.public static void main(String[] arg) throws IOException, com.martiansoftware.jsap.JSAPException, ClassNotFoundException, SecurityException, NoSuchMethodException
IOExceptioncom.martiansoftware.jsap.JSAPExceptionClassNotFoundExceptionSecurityExceptionNoSuchMethodExceptionCopyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.