Class SmallCharMatcher

All Implemented Interfaces:
Predicate<Character>, Predicate<Character>

final class SmallCharMatcher extends CharMatcher.NamedFastMatcher
An immutable version of CharMatcher for smallish sets of characters that uses a hash table with linear probing to check for matches.
  • Field Details

    • MAX_SIZE

      static final int MAX_SIZE
      See Also:
    • table

      private final char[] table
    • containsZero

      private final boolean containsZero
    • filter

      private final long filter
    • C1

      private static final int C1
      See Also:
    • C2

      private static final int C2
      See Also:
    • DESIRED_LOAD_FACTOR

      private static final double DESIRED_LOAD_FACTOR
      See Also:
  • Constructor Details

    • SmallCharMatcher

      private SmallCharMatcher(char[] table, long filter, boolean containsZero, String description)
  • Method Details

    • smear

      static int smear(int hashCode)
    • checkFilter

      private boolean checkFilter(int c)
    • chooseTableSize

      static int chooseTableSize(int setSize)
      Returns an array size suitable for the backing array of a hash table that uses open addressing with linear probing in its implementation. The returned size is the smallest power of two that can hold setSize elements with the desired load factor.
    • from

      static CharMatcher from(BitSet chars, String description)
    • matches

      public boolean matches(char c)
      Description copied from class: CharMatcher
      Determines a true or false value for the given character.
      Specified by:
      matches in class CharMatcher
    • setBits

      void setBits(BitSet table)
      Description copied from class: CharMatcher
      Sets bits in table matched by this matcher.
      Overrides:
      setBits in class CharMatcher