## 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
`char[]` `chars`
`static char[]` `EMPTY_CHARS`
`int` `length`
`int` `offset`

Constructor Summary
`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
`void` `append(char[] otherChars, int otherOffset, int otherLength)` Appends the given array to this CharsRef
`char` `charAt(int index)`
`boolean` `charsEquals(CharsRef other)`
`CharsRef` `clone()`
`int` `compareTo(CharsRef other)` Signed int order comparison
`void` `copyChars(char[] otherChars, int otherOffset, int otherLength)` Copies the given array into this CharsRef.
`void` `copyChars(CharsRef other)` Copies the given `CharsRef` referenced content into this instance.
`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()`
`void` `grow(int newLength)` Used to grow the reference array.
`int` `hashCode()`
`int` `length()`
`CharSequence` `subSequence(int start, int end)`
`String` `toString()`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### EMPTY_CHARS

    public static final char[] EMPTY_CHARS

### chars

    public char[] chars

### offset

    public int offset

### length

    public int length

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

  Overrides:
    `clone` in class `Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

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

### copyChars

    public void copyChars(CharsRef other)

  Copies the given `CharsRef` referenced content into this instance.

  Parameters:
    `other` - the `CharsRef` to copy

### grow

    public void grow(int newLength)

  Used to grow the reference array. In general this should not be used as it does not take the offset into account.

  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

### copyChars

    public void copyChars(char[] otherChars,
                          int otherOffset,
                          int otherLength)

  Copies the given array into this CharsRef.

### append

    public void append(char[] otherChars,
                       int otherOffset,
                       int otherLength)

  Appends the given array to this 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

    public static Comparator<CharsRef> getUTF16SortedAsUTF8Comparator()

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