@Override public DateComparator duplicate() { return new DateComparator(ascendingComparison); }
@Override public void putNormalizedKey(Date record, MemorySegment target, int offset, int numBytes) { putNormalizedKeyDate(record, target, offset, numBytes); }
@Override public int compareSerialized(DataInputView firstSource, DataInputView secondSource) throws IOException { return compareSerializedDate(firstSource, secondSource, ascendingComparison); }
@SuppressWarnings("unchecked") @Override protected TypeComparator<Time> createComparator(boolean ascending) { return (TypeComparator) new DateComparator(ascending); }
@Override public void putNormalizedKey(java.util.Date record, MemorySegment target, int offset, int numBytes) { // put Date key DateComparator.putNormalizedKeyDate(record, target, offset, numBytes > 8 ? 8 : numBytes); numBytes -= 8; offset += 8; if (numBytes <= 0) { // nothing to do } // put nanos else if (numBytes < 4) { final int nanos = ((Timestamp) record).getNanos(); for (int i = 0; numBytes > 0; numBytes--, i++) { target.put(offset + i, (byte) (nanos >>> ((3-i)<<3))); } } // put nanos with padding else { final int nanos = ((Timestamp) record).getNanos(); target.putIntBigEndian(offset, nanos); for (int i = 4; i < numBytes; i++) { target.put(offset + i, (byte) 0); } } }
@Override public int compareSerialized(DataInputView firstSource, DataInputView secondSource) throws IOException { // compare Date part final int comp = DateComparator.compareSerializedDate(firstSource, secondSource, ascendingComparison); // compare nanos if (comp == 0) { final int i1 = firstSource.readInt(); final int i2 = secondSource.readInt(); final int comp2 = (i1 < i2 ? -1 : (i1 == i2 ? 0 : 1)); return ascendingComparison ? comp2 : -comp2; } return comp; }
@Override protected TypeComparator<Date> createComparator(boolean ascending) { return new DateComparator(ascending); }
public static void putTimeNormalizedKey(Time value, MemorySegment target, int offset, int numBytes) { DateComparator.putNormalizedKeyDate(value, target, offset, numBytes); }
@Override public int compareSerialized(DataInputView firstSource, DataInputView secondSource) throws IOException { return compareSerializedDate(firstSource, secondSource, ascendingComparison); }
@SuppressWarnings("unchecked") @Override protected TypeComparator<Date> createComparator(boolean ascending) { return (TypeComparator) new DateComparator(ascending); }
public static void putDateNormalizedKey(Date value, MemorySegment target, int offset, int numBytes) { DateComparator.putNormalizedKeyDate(value, target, offset, numBytes); }
@Override public int compareSerialized(DataInputView firstSource, DataInputView secondSource) throws IOException { return compareSerializedDate(firstSource, secondSource, ascendingComparison); }
@Override public DateComparator duplicate() { return new DateComparator(ascendingComparison); }
@Override public void putNormalizedKey(Date record, MemorySegment target, int offset, int numBytes) { putNormalizedKeyDate(record, target, offset, numBytes); }
@Override public int compareSerialized(DataInputView firstSource, DataInputView secondSource) throws IOException { // compare Date part final int comp = DateComparator.compareSerializedDate(firstSource, secondSource, ascendingComparison); // compare nanos if (comp == 0) { final int i1 = firstSource.readInt(); final int i2 = secondSource.readInt(); final int comp2 = (i1 < i2 ? -1 : (i1 == i2 ? 0 : 1)); return ascendingComparison ? comp2 : -comp2; } return comp; }
@Override public DateComparator duplicate() { return new DateComparator(ascendingComparison); }
@Override public void putNormalizedKey(Date record, MemorySegment target, int offset, int numBytes) { putNormalizedKeyDate(record, target, offset, numBytes); }
@Override public int compareSerialized(DataInputView firstSource, DataInputView secondSource) throws IOException { // compare Date part final int comp = DateComparator.compareSerializedDate(firstSource, secondSource, ascendingComparison); // compare nanos if (comp == 0) { final int i1 = firstSource.readInt(); final int i2 = secondSource.readInt(); final int comp2 = (i1 < i2 ? -1 : (i1 == i2 ? 0 : 1)); return ascendingComparison ? comp2 : -comp2; } return comp; }
Collections.sort(arraylist, new DateComparator());
@Override public void putNormalizedKey(java.util.Date record, MemorySegment target, int offset, int numBytes) { // put Date key DateComparator.putNormalizedKeyDate(record, target, offset, numBytes > 8 ? 8 : numBytes); numBytes -= 8; offset += 8; if (numBytes <= 0) { // nothing to do } // put nanos else if (numBytes < 4) { final int nanos = ((Timestamp) record).getNanos(); for (int i = 0; numBytes > 0; numBytes--, i++) { target.put(offset + i, (byte) (nanos >>> ((3-i)<<3))); } } // put nanos with padding else { final int nanos = ((Timestamp) record).getNanos(); target.putIntBigEndian(offset, nanos); for (int i = 4; i < numBytes; i++) { target.put(offset + i, (byte) 0); } } }