Class LiterallySignedStringMap

java.lang.Object
it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<CharSequence>
it.unimi.dsi.util.LiterallySignedStringMap
All Implemented Interfaces:
it.unimi.dsi.fastutil.Function<CharSequence,Long>, it.unimi.dsi.fastutil.objects.Object2LongFunction<CharSequence>, StringMap<MutableString>, Serializable, Function<CharSequence,Long>, ToLongFunction<CharSequence>

public class LiterallySignedStringMap extends it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction<CharSequence> implements StringMap<MutableString>, 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 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.

Since:
1.0.8
Author:
Sebastiano Vigna
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends CharSequence>
    The underlying map.
    protected final it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString>
    The underlying list.
    protected final int
    The size of list.

    Fields inherited from class it.unimi.dsi.fastutil.objects.AbstractObject2LongFunction

    defRetValue
  • Constructor Summary

    Constructors
    Constructor
    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.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    Deprecated.
    long
     
    it.unimi.dsi.fastutil.objects.ObjectList<? extends MutableString>
    Returns a list view of the domain of this string map (optional operation).
    static void
    main(String[] arg)
     
    int
     

    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.Function

    apply, clear

    Methods inherited from interface java.util.function.Function

    compose

    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 Details

    • function

      protected final it.unimi.dsi.fastutil.objects.Object2LongFunction<? extends 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 of list.
  • Constructor Details

    • LiterallySignedStringMap

      public 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.
      Parameters:
      function - a function mapping each string in list to its ordinal position.
      list - a list of strings.
  • Method Details