# Package org.apache.lucene.util

Some utility classes.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Accountable | An object whose RAM usage can be computed.
  Attribute | Base interface for attributes.
  AttributeReflector | This interface is used to reflect contents of `AttributeSource` or `AttributeImpl`.
  Bits | Interface for Bitset-like structures.
  BytesRefArray.IndexedBytesRefIterator | An extension of `BytesRefIterator` that allows retrieving the index of the current element
  BytesRefIterator | A simple iterator interface for `BytesRef` iteration.
  IOSupplier<T> | This is a result supplier that is allowed to throw an IOException.
  IOUtils.IOConsumer<T> | An IO operation with a single input.
  NamedSPILoader.NamedSPI | Interface to support `NamedSPILoader.lookup(String)` by name.
  RollingBuffer.Resettable | Implement to reset an instance

- Class Summary
  Class | Description
  --- | ---
  Accountables | Helper methods for constructing nested resource descriptions and debugging RAM usage.
  ArrayUtil | Methods for manipulating arrays.
  AttributeFactory | An AttributeFactory creates instances of `AttributeImpl`s.
  AttributeFactory.StaticImplementationAttributeFactory<A extends AttributeImpl> | Expert: AttributeFactory returning an instance of the given `clazz` for the attributes it implements.
  AttributeImpl | Base class for Attributes that can be added to a `AttributeSource`.
  AttributeSource | An AttributeSource contains a list of different `AttributeImpl`s, and methods to add and get them.
  AttributeSource.State | This class holds the state of an AttributeSource.
  BitDocIdSet | Implementation of the `DocIdSet` interface on top of a `BitSet`.
  Bits.MatchAllBits | Bits impl of the specified length with all bits set.
  Bits.MatchNoBits | Bits impl of the specified length with no bits set.
  BitSet | Base implementation for a bit set.
  BitSetIterator | A `DocIdSetIterator` which iterates over set bits in a bit set.
  BitUtil | A variety of high efficiency bit twiddling routines.
  ByteBlockPool | Class that Posting and PostingVector use to write byte streams into shared fixed-size byte[] arrays.
  ByteBlockPool.Allocator | Abstract class for allocating and freeing byte blocks.
  ByteBlockPool.DirectAllocator | A simple `ByteBlockPool.Allocator` that never recycles.
  ByteBlockPool.DirectTrackingAllocator | A simple `ByteBlockPool.Allocator` that never recycles, but tracks how much total RAM is in use.
  BytesRef | Represents byte[], as a slice (offset + length) into an existing byte[].
  BytesRefArray | A simple append only random-access `BytesRef` array that stores full copies of the appended bytes in a `ByteBlockPool`.
  BytesRefArray.SortState | Used to iterate the elements of an array in a given order.
  BytesRefBuilder | A builder for `BytesRef` instances.
  BytesRefComparator | Specialized `BytesRef` comparator that `FixedLengthBytesRefArray.iterator(Comparator)` has optimizations for.
  BytesRefHash | `BytesRefHash` is a special purpose hash-map like data-structure optimized for `BytesRef` instances.
  BytesRefHash.BytesStartArray | Manages allocation of the per-term addresses.
  BytesRefHash.DirectBytesStartArray | A simple `BytesRefHash.BytesStartArray` that tracks memory allocation using a private `Counter` instance.
  CharsRef | Represents char[], as a slice (offset + length) into an existing char[].
  CharsRefBuilder | A builder for `CharsRef` instances.
  CloseableThreadLocal<T> | Java's builtin ThreadLocal has a serious flaw: it can take an arbitrarily long amount of time to dereference the things you had stored in it, even once the ThreadLocal instance itself is no longer referenced.
  CollectionUtil | Methods for manipulating (sorting) collections.
  CommandLineUtil | Class containing some useful methods used by command line tools
  Constants | Some useful constants.
  Counter | Simple counter class
  DocIdSetBuilder | A builder of `DocIdSet`s.
  DocIdSetBuilder.BulkAdder | Utility class to efficiently add many docs in one go.
  FilterIterator<T,InnerT extends T> | An `Iterator` implementation that filters elements with a boolean predicate.
  FixedBitSet | BitSet of fixed length (numBits), backed by accessible (`FixedBitSet.getBits()`) long[], accessed with an int index, implementing `Bits` and `DocIdSet`.
  FrequencyTrackingRingBuffer | A ring buffer that tracks the frequency of the integers that it contains.
  FutureArrays | Additional methods from Java 9's `java.util.Arrays`.
  FutureObjects | Additional methods from Java 9's `java.util.Objects`.
  InfoStream | Debugging API for Lucene classes such as `IndexWriter` and `SegmentInfos`.
  InPlaceMergeSorter | `Sorter` implementation based on the merge-sort algorithm that merges in place (no extra memory will be allocated).
  IntBlockPool | A pool for int blocks similar to `ByteBlockPool`
  IntBlockPool.Allocator | Abstract class for allocating and freeing int blocks.
  IntBlockPool.DirectAllocator | A simple `IntBlockPool.Allocator` that never recycles.
  IntBlockPool.SliceReader | A `IntBlockPool.SliceReader` that can read int slices written by a `IntBlockPool.SliceWriter`
  IntBlockPool.SliceWriter | A `IntBlockPool.SliceWriter` that allows to write multiple integer slices into a given `IntBlockPool`.
  IntroSelector | Implementation of the quick select algorithm.
  IntroSorter | `Sorter` implementation based on a variant of the quicksort algorithm called introsort: when the recursion level exceeds the log of the length of the array to sort, it falls back to heapsort.
  IntsRef | Represents int[], as a slice (offset + length) into an existing int[].
  IntsRefBuilder | A builder for `IntsRef` instances.
  IOUtils | This class emulates the new Java 7 "Try-With-Resources" statement.
  LongBitSet | BitSet of fixed length (numBits), backed by accessible (`LongBitSet.getBits()`) long[], accessed with a long index.
  LongsRef | Represents long[], as a slice (offset + length) into an existing long[].
  LongValues | Abstraction over an array of longs.
  LSBRadixSorter | A LSB Radix sorter for unsigned int values.
  MapOfSets<K,V> | Helper class for keeping Lists of Objects associated with keys.
  MathUtil | Math static utility methods.
  MergedIterator<T extends Comparable<T>> | Provides a merged sorted view from several sorted iterators.
  MSBRadixSorter | Radix sorter for variable-length strings.
  NamedSPILoader<S extends NamedSPILoader.NamedSPI> | Helper class for loading named SPIs from classpath (e.g.
  NamedThreadFactory | A default `ThreadFactory` implementation that accepts the name prefix of the created threads as a constructor argument.
  NotDocIdSet | This `DocIdSet` encodes the negation of another `DocIdSet`.
  NumericUtils | Helper APIs to encode numeric values as sortable bytes and vice-versa.
  OfflineSorter | On-disk sorting of byte arrays.
  OfflineSorter.BufferSize | A bit more descriptive unit for constructors.
  OfflineSorter.ByteSequencesReader | Utility class to read length-prefixed byte[] entries from an input.
  OfflineSorter.ByteSequencesWriter | Utility class to emit length-prefixed byte[] entries to an output stream for sorting.
  PagedBytes | Represents a logical byte[] as a series of pages.
  PagedBytes.Reader | Provides methods to read BytesRefs from a frozen PagedBytes.
  PrintStreamInfoStream | InfoStream implementation over a `PrintStream` such as `System.out`.
  PriorityQueue<T> | A PriorityQueue maintains a partial ordering of its elements such that the least element can always be found in constant time.
  QueryBuilder | Creates queries from the `Analyzer` chain.
  QueryBuilder.TermAndBoost | Wraps a term and boost
  RadixSelector | Radix selector.
  RamUsageEstimator | Estimates the size (memory representation) of Java objects.
  RecyclingByteBlockAllocator | A `ByteBlockPool.Allocator` implementation that recycles unused byte blocks in a buffer and reuses them in subsequent calls to `RecyclingByteBlockAllocator.getByteBlock()`.
  RecyclingIntBlockAllocator | A `IntBlockPool.Allocator` implementation that recycles unused int blocks in a buffer and reuses them in subsequent calls to `RecyclingIntBlockAllocator.getIntBlock()`.
  RefCount<T> | Manages reference counting for a given object.
  RoaringDocIdSet | `DocIdSet` implementation inspired from http://roaringbitmap.org/ The space is divided into blocks of 2^16 bits and each block is encoded independently.
  RoaringDocIdSet.Builder | A builder of `RoaringDocIdSet`s.
  RollingBuffer<T extends RollingBuffer.Resettable> | Acts like forever growing T[], but internally uses a circular buffer to reuse instances of T.
  SameThreadExecutorService | An `ExecutorService` that executes tasks immediately in the calling thread during submit.
  Selector | An implementation of a selection algorithm, ie.
  SentinelIntSet | A native int hash-based set where one value is reserved to mean "EMPTY" internally.
  SetOnce<T> | A convenient class which offers a semi-immutable object wrapper implementation which allows one to set the value of an object exactly once, and retrieve it many times.
  SloppyMath | Math functions that trade off accuracy for speed.
  SmallFloat | Floating point numbers smaller than 32 bits.
  Sorter | Base class for sorting algorithms implementations.
  SparseFixedBitSet | A bit set that only stores longs that have at least one bit which is set.
  SPIClassIterator<S> | Helper class for loading SPI classes from classpath (META-INF files).
  StringHelper | Methods for manipulating strings.
  TimSorter | `Sorter` implementation based on the TimSort algorithm.
  ToStringUtils | Helper methods to ease implementing `Object.toString()`.
  UnicodeUtil | Class to encode java's UTF16 char[] into UTF8 byte[] without always allocating a new byte[] as String.getBytes(StandardCharsets.UTF_8) does.
  Version | Use by certain classes to match version compatibility across releases of Lucene.
  VirtualMethod<C> | A utility for keeping backwards compatibility on previously abstract methods (or similar replacements).
  WeakIdentityMap<K,V> | Implements a combination of `WeakHashMap` and `IdentityHashMap`.

- Exception Summary
  Exception | Description
  --- | ---
  BytesRefHash.MaxBytesLengthExceededException | Thrown if a `BytesRef` exceeds the `BytesRefHash` limit of `ByteBlockPool.BYTE_BLOCK_SIZE`-2.
  SetOnce.AlreadySetException | Thrown when `SetOnce.set(Object)` is called more than once.
  ThreadInterruptedException | Thrown by lucene on detecting that Thread.interrupt() had been called.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  SuppressForbidden | Annotation to suppress forbidden-apis errors inside a whole class, a method, or a field.

## Package org.apache.lucene.util Description

Some utility classes.

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