Package org.apache.lucene.util

# Class BytesRefComparator

java.lang.Object
org.apache.lucene.util.BytesRefComparator

All Implemented Interfaces:
  `Comparator<BytesRef>`

public abstract class BytesRefComparator extends Object implements Comparator<BytesRef>
Specialized `BytesRef` comparator that `StringSorter` has optimizations for.

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

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final BytesRefComparator`
  `NATURAL`
  Comparing ByteRefs in natual order.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `BytesRefComparator(int comparedBytesCount)`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract int`
  `byteAt(BytesRef ref, int i)`
  Return the unsigned byte to use for comparison at index `i`, or `-1` if all bytes that are useful for comparisons are exhausted.
  `final int`
  `compare(BytesRef o1, BytesRef o2)`
  `int`
  `compare(BytesRef o1, BytesRef o2, int k)`
  Compare two bytes refs that first k bytes are already guaranteed to be equal.

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

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

  ### Methods inherited from interface java.util.Comparator

  `equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- ## Field Details

  - ### NATURAL

    public static final BytesRefComparator NATURAL
    Comparing ByteRefs in natual order.

- ## Constructor Details

  - ### BytesRefComparator

    protected BytesRefComparator(int comparedBytesCount)
    Sole constructor.
    Parameters:
      `comparedBytesCount` - the maximum number of bytes to compare.

- ## Method Details

  - ### byteAt

    protected abstract int byteAt(BytesRef ref, int i)
    Return the unsigned byte to use for comparison at index `i`, or `-1` if all bytes that are useful for comparisons are exhausted. This may only be called with a value of `i` between `0` included and `comparedBytesCount` excluded.

  - ### compare

    public final int compare(BytesRef o1, BytesRef o2)
    Specified by:
      `compare` in interface `Comparator<BytesRef>`

  - ### compare

    public int compare(BytesRef o1, BytesRef o2, int k)
    Compare two bytes refs that first k bytes are already guaranteed to be equal.