org.apache.commons.collections4.trie.analyzer

## Class StringKeyAnalyzer

- java.lang.Object
- - org.apache.commons.collections4.trie.KeyAnalyzer<String>
  - - org.apache.commons.collections4.trie.analyzer.StringKeyAnalyzer

- All Implemented Interfaces:
    Serializable, Comparator<String>

      public class StringKeyAnalyzer
      extends KeyAnalyzer<String>

  An `KeyAnalyzer` for `String`s.
  Since:
    4.0
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static StringKeyAnalyzer` | `INSTANCE` A singleton instance of `StringKeyAnalyzer`.
    `static int` | `LENGTH` The number of bits per `Character`.

    - ### Fields inherited from class org.apache.commons.collections4.trie.KeyAnalyzer

      `EQUAL_BIT_KEY, NULL_BIT_KEY, OUT_OF_BOUNDS_BIT_KEY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StringKeyAnalyzer()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `bitIndex(String key, int offsetInBits, int lengthInBits, String other, int otherOffsetInBits, int otherLengthInBits)` Returns the n-th different bit between key and other.
    `int` | `bitsPerElement()` Returns the number of bits per element in the key.
    `boolean` | `isBitSet(String key, int bitIndex, int lengthInBits)` Returns whether or not a bit is set.
    `boolean` | `isPrefix(String prefix, int offsetInBits, int lengthInBits, String key)` Determines whether or not the given prefix (from offset to length) is a prefix of the given key.
    `int` | `lengthInBits(String key)` Returns the length of the Key in bits.

    - ### Methods inherited from class org.apache.commons.collections4.trie.KeyAnalyzer

      `compare`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.util.Comparator

      `comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- - ### Field Detail

    - #### INSTANCE

          public static final StringKeyAnalyzer INSTANCE

      A singleton instance of `StringKeyAnalyzer`.

    - #### LENGTH

          public static final int LENGTH

      The number of bits per `Character`.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### StringKeyAnalyzer

          public StringKeyAnalyzer()

  - ### Method Detail

    - #### bitsPerElement

          public int bitsPerElement()

      Description copied from class: `KeyAnalyzer`
      Returns the number of bits per element in the key. This is only useful for variable-length keys, such as Strings.
      Specified by:
        `bitsPerElement` in class `KeyAnalyzer<String>`
      Returns:
        the number of bits per element

    - #### lengthInBits

          public int lengthInBits(String key)

      Description copied from class: `KeyAnalyzer`
      Returns the length of the Key in bits.
      Specified by:
        `lengthInBits` in class `KeyAnalyzer<String>`
      Parameters:
        `key` - the key
      Returns:
        the bit length of the key

    - #### bitIndex

          public int bitIndex(String key,
                              int offsetInBits,
                              int lengthInBits,
                              String other,
                              int otherOffsetInBits,
                              int otherLengthInBits)

      Description copied from class: `KeyAnalyzer`
      Returns the n-th different bit between key and other. This starts the comparison in key at 'offsetInBits' and goes for 'lengthInBits' bits, and compares to the other key starting at 'otherOffsetInBits' and going for 'otherLengthInBits' bits.
      Specified by:
        `bitIndex` in class `KeyAnalyzer<String>`
      Parameters:
        `key` - the key to use
        `offsetInBits` - the bit offset in the key
        `lengthInBits` - the maximum key length in bits to use
        `other` - the other key to use
        `otherOffsetInBits` - the bit offset in the other key
        `otherLengthInBits` - the maximum key length in bits for the other key
      Returns:
        the bit index where the key and other first differ

    - #### isBitSet

          public boolean isBitSet(String key,
                                  int bitIndex,
                                  int lengthInBits)

      Description copied from class: `KeyAnalyzer`
      Returns whether or not a bit is set.
      Specified by:
        `isBitSet` in class `KeyAnalyzer<String>`
      Parameters:
        `key` - the key to check, may not be null
        `bitIndex` - the bit index to check
        `lengthInBits` - the maximum key length in bits to check
      Returns:
        `true` if the bit is set in the given key and `bitIndex` < `lengthInBits`, `false` otherwise.

    - #### isPrefix

          public boolean isPrefix(String prefix,
                                  int offsetInBits,
                                  int lengthInBits,
                                  String key)

      Description copied from class: `KeyAnalyzer`
      Determines whether or not the given prefix (from offset to length) is a prefix of the given key.
      Specified by:
        `isPrefix` in class `KeyAnalyzer<String>`
      Parameters:
        `prefix` - the prefix to check
        `offsetInBits` - the bit offset in the key
        `lengthInBits` - the maximum key length in bits to use
        `key` - the key to check
      Returns:
        `true` if this is a valid prefix for the given key

Copyright © 2001–2019 The Apache Software Foundation. All rights reserved.