org.apache.lucene.search.suggest

## Class BytesRefArray

- java.lang.Object
- - org.apache.lucene.search.suggest.BytesRefArray

    public final class BytesRefArray
    extends Object

A simple append only random-access `BytesRef` array that stores full copies of the appended bytes in a `ByteBlockPool`. Note: This class is not Thread-Safe!

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

### Constructor Summary

Constructors
Constructor and Description
`BytesRefArray(Counter bytesUsed)` Creates a new `BytesRefArray` with a counter to track allocated bytes

### Method Summary

Methods
`int` `append(BytesRef bytes)` Appends a copy of the given `BytesRef` to this `BytesRefArray`.
`void` `clear()` Clears this `BytesRefArray`
`BytesRef` `get(BytesRef spare, int ord)` Returns the n'th element of this `BytesRefArray`
`BytesRefIterator` `iterator()` sugar for `iterator(Comparator)` with a `null` comparator
`BytesRefIterator` `iterator(Comparator<BytesRef> comp)` Returns a `BytesRefIterator` with point in time semantics.
`int` `size()` Returns the current size of this `BytesRefArray`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### BytesRefArray

    public BytesRefArray(Counter bytesUsed)

Creates a new `BytesRefArray` with a counter to track allocated bytes

### Method Detail

#### clear

    public void clear()

Clears this `BytesRefArray`

#### append

    public int append(BytesRef bytes)

Appends a copy of the given `BytesRef` to this `BytesRefArray`.

Parameters:
  `bytes` - the bytes to append
Returns:
  the ordinal of the appended bytes

#### size

    public int size()

Returns the current size of this `BytesRefArray`

Returns:
  the current size of this `BytesRefArray`

#### get

    public BytesRef get(BytesRef spare,
               int ord)

Returns the n'th element of this `BytesRefArray`

Parameters:
  `spare` - a spare `BytesRef` instance
  `ord` - the elements ordinal to retrieve
Returns:
  the n'th element of this `BytesRefArray`

#### iterator

    public BytesRefIterator iterator()

sugar for `iterator(Comparator)` with a `null` comparator

#### iterator

    public BytesRefIterator iterator(Comparator<BytesRef> comp)

Returns a `BytesRefIterator` with point in time semantics. The iterator provides access to all so far appended `BytesRef` instances.

If a non `null` `Comparator` is provided the iterator will iterate the byte values in the order specified by the comparator. Otherwise the order is the same as the values were appended.

This is a non-destructive operation.