Class SuffixArray<T>

java.lang.Object
emi.shims.java.net.minecraft.client.search.SuffixArray<T>

@Environment(CLIENT) public class SuffixArray<T> extends Object
Provides an efficient way to search for a text in multiple texts.
  • Field Details

    • objects

      protected final List<T> objects
  • Constructor Details

    • SuffixArray

      public SuffixArray()
  • Method Details

    • add

      public void add(T object, String text)
      Adds a text with the corresponding object.

      You are not allowed to call this method after calling build() method.

      Takes O(text.length()) time.

    • build

      public void build()
      Builds a suffix array with added texts.

      You are not allowed to call this method multiple times.

      Takes O(N * log N * log M) time on average where N is the sum of all text length added, and M is the maximum text length added.

    • findAll

      public List<T> findAll(String text)
      Retrieves all objects of which corresponding texts contain text.

      You have to call build() method before calling this method.

      Takes O(text.length() * log N) time to find objects where N is the sum of all text length added. Takes O(X + Y * log Y) time to collect found objects into a list where X is the number of occurrences of text in all texts added, and Y is the number of found objects.