Class CharsRef

java.lang.Object
org.apache.lucene.util.CharsRef
All Implemented Interfaces:
CharSequence, Cloneable, Comparable<CharsRef>

public final class CharsRef extends Object implements Comparable<CharsRef>, CharSequence, Cloneable
Represents char[], as a slice (offset + length) into an existing char[]. The chars member should never be null; use EMPTY_CHARS if necessary.
NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
  • Field Details

    • EMPTY_CHARS

      public static final char[] EMPTY_CHARS
      An empty character array for convenience
    • chars

      public char[] chars
      The contents of the CharsRef. Should never be null.
    • offset

      public int offset
      Offset of first valid character.
    • length

      public int length
      Length of used characters.
  • Constructor Details

    • CharsRef

      public CharsRef()
      Creates a new CharsRef initialized an empty array zero-length
    • CharsRef

      public CharsRef(int capacity)
      Creates a new CharsRef initialized with an array of the given capacity
    • CharsRef

      public CharsRef(char[] chars, int offset, int length)
      Creates a new CharsRef initialized with the given array, offset and length
    • CharsRef

      public CharsRef(String string)
      Creates a new CharsRef initialized with the given Strings character array
  • Method Details

    • clone

      public CharsRef clone()
      Returns a shallow clone of this instance (the underlying characters are not copied and will be shared by both the returned object and this object.
      Overrides:
      clone in class Object
      See Also:
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • stringHashCode

      public static int stringHashCode(char[] chars, int offset, int length)
      Returns:
      the hash code of the given char sub-array, calculated by String.hashCode() specification
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • charsEquals

      public boolean charsEquals(CharsRef other)
    • compareTo

      public int compareTo(CharsRef other)
      Signed int order comparison
      Specified by:
      compareTo in interface Comparable<CharsRef>
    • toString

      public String toString()
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object
    • length

      public int length()
      Specified by:
      length in interface CharSequence
    • charAt

      public char charAt(int index)
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
    • getUTF16SortedAsUTF8Comparator

      @Deprecated public static Comparator<CharsRef> getUTF16SortedAsUTF8Comparator()
      Deprecated.
      This comparator is only a transition mechanism
    • deepCopyOf

      public static CharsRef deepCopyOf(CharsRef other)
      Creates a new CharsRef that points to a copy of the chars from other

      The returned CharsRef will have a length of other.length and an offset of zero.

    • isValid

      public boolean isValid()
      Performs internal consistency checks. Always returns true (or throws IllegalStateException)