用于字节数组的 Java 比较器(词典编纂)

2022-09-03 09:06:51

我有一个带有byte[]键的哈希图。我想通过树状图对其进行排序。

实现词典顺序比较器的最有效方法是什么?


答案 1

使用番石榴,您可以使用以下任一方法:

比较器似乎具有优化的表单,如果可以的话,它会使用该表单。代码中的注释表明,它的速度可能是普通 Java 实现的两倍。UnsignedBytesUnsafe


答案 2

在Apache Hbase中发现了这段不错的代码:

    public int compare(byte[] left, byte[] right) {
        for (int i = 0, j = 0; i < left.length && j < right.length; i++, j++) {
            int a = (left[i] & 0xff);
            int b = (right[j] & 0xff);
            if (a != b) {
                return a - b;
            }
        }
        return left.length - right.length;
    }

推荐