org.apache.lucene.util

## Class BytesRefArray

- java.lang.Object
- - org.apache.lucene.util.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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `append(BytesRef bytes)` Appends a copy of the given `BytesRef` to this `BytesRefArray`.
    `void` | `clear()` Clears this `BytesRefArray`
    `BytesRef` | `get(BytesRefBuilder spare, int index)` 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 index 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(BytesRefBuilder spare,
                              int index)

      Returns the n'th element of this `BytesRefArray`
      Parameters:
        `spare` - a spare `BytesRef` instance
        `index` - the elements index 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.

Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.