Package 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-accessBytesRef
array that stores full copies of the appended bytes in aByteBlockPool
.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
BytesRefArray.IndexedBytesRefIterator
An extension ofBytesRefIterator
that allows retrieving the index of the current elementstatic class
BytesRefArray.SortState
Used to iterate the elements of an array in a given order.
-
Constructor Summary
Constructors Constructor Description BytesRefArray(Counter bytesUsed)
Creates a newBytesRefArray
with a counter to track allocated bytes
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
append(BytesRef bytes)
Appends a copy of the givenBytesRef
to thisBytesRefArray
.void
clear()
Clears thisBytesRefArray
BytesRef
get(BytesRefBuilder spare, int index)
Returns the n'th element of thisBytesRefArray
BytesRefIterator
iterator()
sugar foriterator(Comparator)
with anull
comparatorBytesRefIterator
iterator(Comparator<BytesRef> comp)
Returns aBytesRefIterator
with point in time semantics.BytesRefArray.IndexedBytesRefIterator
iterator(BytesRefArray.SortState sortState)
Returns anBytesRefArray.IndexedBytesRefIterator
with point in time semantics.int
size()
Returns the current size of thisBytesRefArray
BytesRefArray.SortState
sort(Comparator<BytesRef> comp, boolean stable)
Returns aBytesRefArray.SortState
representing the order of elements in this array.
-
-
-
Constructor Detail
-
BytesRefArray
public BytesRefArray(Counter bytesUsed)
Creates a newBytesRefArray
with a counter to track allocated bytes
-
-
Method Detail
-
clear
public void clear()
Clears thisBytesRefArray
-
append
public int append(BytesRef bytes)
Appends a copy of the givenBytesRef
to thisBytesRefArray
.- Parameters:
bytes
- the bytes to append- Returns:
- the index of the appended bytes
-
size
public int size()
Returns the current size of thisBytesRefArray
- Returns:
- the current size of this
BytesRefArray
-
get
public BytesRef get(BytesRefBuilder spare, int index)
Returns the n'th element of thisBytesRefArray
- Parameters:
spare
- a spareBytesRef
instanceindex
- the elements index to retrieve- Returns:
- the n'th element of this
BytesRefArray
-
sort
public BytesRefArray.SortState sort(Comparator<BytesRef> comp, boolean stable)
Returns aBytesRefArray.SortState
representing the order of elements in this array. This is a non-destructive operation.- Parameters:
comp
- The comparator to compareBytesRef
s. A radix sort optimization is available if the comparator implementsBytesRefComparator
stable
- If the sort needs to be stable- Returns:
- A
BytesRefArray.SortState
that could be used initerator(SortState)
-
iterator
public BytesRefIterator iterator()
sugar foriterator(Comparator)
with anull
comparator
-
iterator
public BytesRefIterator iterator(Comparator<BytesRef> comp)
Returns aBytesRefIterator
with point in time semantics. The iterator provides access to all so far appendedBytesRef
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.
-
iterator
public BytesRefArray.IndexedBytesRefIterator iterator(BytesRefArray.SortState sortState)
Returns anBytesRefArray.IndexedBytesRefIterator
with point in time semantics. The iterator provides access to all so far appendedBytesRef
instances. If a non-null sortState is specified then the iterator will iterate the byte values in the order of the sortState; otherwise, the order is the same as the values were appended.
-
-