Name
RecordComparator
Synopsis
This is an interface used when creating a RecordEnumeration
that determines the order in which records are returned. The interface
consists of the single method compare(), which is passed
a pair of byte-array records, rec1 and
rec2. The method returns one of the following integer
values to indicate their relative ordering:
- PRECEDES
Indicates that
rec1should appear beforerec2- EQUIVALENT
Indicates that
rec1andrec2are equivalent according to the sorting criterion applied by this comparator. Note that this does not imply that the records are equal, although equal records would result in this value being returned.- FOLLOWS
Indicates that
rec1should appear afterrec2
A typical implementation of this method wraps each of the records with a
ByteArrayInputStream and a DataInputStream
so that the contents of the records can be accessed as a set of fields.
To construct a filter that sorts based on the natural sorting order of the
first field in the record, which is assumed to be a String,
the record in the byte arrays rec1 and
rec2 is converted to DataInputStreams
like this:
DataInputStream dis1 = new DataInputStream(new ByteArrayInputStream(rec1));
DataInputStream dis2 = new DataInputStream(new ByteArrayInputStream(rec2));
At this point, the field to be compared is extracted from each record
using the DataInputStream
readUTF()
method, and the comparison is performed:
int res = dis1.readUTF().compareTo(dis2.readUTF());
The return value from the method ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access