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!
  • Constructor Details

    • BytesRefArray

      public BytesRefArray(Counter bytesUsed)
      Creates a new BytesRefArray with a counter to track allocated bytes
  • Method Details

    • 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(BytesRef 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.