in graphjet-core/src/main/java/com/twitter/graphjet/hashing/SmallArrayBasedLongToDoubleMap.java [213:246]
public void sort() {
Arrays.quickSort(0, size, new IntComparator() {
@Override
// sort both keys and values in the order of decreasing values
public int compare(int i1, int i2) {
double val1 = values[i1];
double val2 = values[i2];
if (val1 < val2) {
return 1;
} else if (val1 > val2) {
return -1;
}
return 0;
}
@Override
public int compare(Integer integer1, Integer integer2) {
throw new UnsupportedOperationException();
}
}, new Swapper() {
@Override
public void swap(int i1, int i2) {
long key1 = keys[i1];
double value1 = values[i1];
long metadata1 = metadataArray[i1];
keys[i1] = keys[i2];
values[i1] = values[i2];
metadataArray[i1] = metadataArray[i2];
keys[i2] = key1;
values[i2] = value1;
metadataArray[i2] = metadata1;
}
});
}