org.apache.lucene.util

## Class IntsRef

- java.lang.Object
- - org.apache.lucene.util.IntsRef

All Implemented Interfaces:
  Cloneable, Comparable<IntsRef>

    public final class IntsRef
    extends Object
    implements Comparable<IntsRef>, Cloneable

Represents int[], as a slice (offset + length) into an existing int[]. The `ints` member should never be null; use `EMPTY_INTS` if necessary.

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

### Field Summary

Fields
`static int[]` `EMPTY_INTS` An empty integer array for convenience
`int[]` `ints` The contents of the IntsRef.
`int` `length` Length of used ints.
`int` `offset` Offset of first valid integer.

### Constructor Summary

Constructors
Constructor and Description
`IntsRef()` Create a IntsRef with `EMPTY_INTS`
`IntsRef(int capacity)` Create a IntsRef pointing to a new array of size `capacity`.
`IntsRef(int[] ints, int offset, int length)` This instance will directly reference ints w/o making a copy.

### Method Summary

Methods
`IntsRef` `clone()`
`int` `compareTo(IntsRef other)` Signed int order comparison
`void` `copyInts(IntsRef other)`
`static IntsRef` `deepCopyOf(IntsRef other)` Creates a new IntsRef that points to a copy of the ints from `other`
`boolean` `equals(Object other)`
`void` `grow(int newLength)` Used to grow the reference array.
`int` `hashCode()`
`boolean` `intsEquals(IntsRef other)`
`boolean` `isValid()` Performs internal consistency checks.
`String` `toString()`

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

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

### Field Detail

#### EMPTY_INTS

    public static final int[] EMPTY_INTS

An empty integer array for convenience

#### ints

    public int[] ints

The contents of the IntsRef. Should never be `null`.

#### offset

    public int offset

Offset of first valid integer.

#### length

    public int length

Length of used ints.

### Constructor Detail

#### IntsRef

    public IntsRef()

Create a IntsRef with `EMPTY_INTS`

#### IntsRef

    public IntsRef(int capacity)

Create a IntsRef pointing to a new array of size `capacity`. Offset and length will both be zero.

#### IntsRef

    public IntsRef(int[] ints,
           int offset,
           int length)

This instance will directly reference ints w/o making a copy. ints should not be null.

### Method Detail

#### clone

    public IntsRef 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`

#### intsEquals

    public boolean intsEquals(IntsRef other)

#### compareTo

    public int compareTo(IntsRef other)

Signed int order comparison

Specified by:
  `compareTo` in interface `Comparable<IntsRef>`

#### copyInts

    public void copyInts(IntsRef other)

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

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### deepCopyOf

    public static IntsRef deepCopyOf(IntsRef other)

Creates a new IntsRef that points to a copy of the ints from `other`

The returned IntsRef 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)