Package org.apache.lucene.util

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `char[]`
  `chars`
  The contents of the CharsRef.
  `static final char[]`
  `EMPTY_CHARS`
  An empty character array for convenience
  `int`
  `length`
  Length of used characters.
  `int`
  `offset`
  Offset of first valid character.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CharsRef()`
  Creates a new `CharsRef` initialized an empty array zero-length
  `CharsRef(char[] chars, int offset, int length)`
  Creates a new `CharsRef` initialized with the given array, offset and length
  `CharsRef(int capacity)`
  Creates a new `CharsRef` initialized with an array of the given capacity
  `CharsRef(String string)`
  Creates a new `CharsRef` initialized with the given Strings character array

- ## Method Summary

  Modifier and Type
  Method
  Description
  `char`
  `charAt(int index)`
  `boolean`
  `charsEquals(CharsRef other)`
  `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.
  `int`
  `compareTo(CharsRef other)`
  Signed int order comparison
  `static CharsRef`
  `deepCopyOf(CharsRef other)`
  Creates a new CharsRef that points to a copy of the chars from `other`
  `boolean`
  `equals(Object other)`
  `static Comparator<CharsRef>`
  `getUTF16SortedAsUTF8Comparator()`
  Deprecated.
  This comparator is only a transition mechanism
  `int`
  `hashCode()`
  `boolean`
  `isValid()`
  Performs internal consistency checks.
  `int`
  `length()`
  `static int`
  `stringHashCode(char[] chars, int offset, int length)`
  `CharSequence`
  `subSequence(int start, int end)`
  `String`
  `toString()`

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

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface java.lang.CharSequence

  `chars, codePoints, isEmpty`

- ## 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:
      - `deepCopyOf(org.apache.lucene.util.CharsRef)`

  - ### 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)