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

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    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`

- - ### Field Detail

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

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

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