阅读kvstore\ArrayWrappers.java(3)
ComparableIntArray 的实现
private static class ComparableIntArray implements Comparable<ComparableIntArray> {
private final int[] array;
ComparableIntArray(int[] array) {
this.array = array;
}
@Override
public boolean equals(Object other) {
if (!(other instanceof ComparableIntArray)) {
return false;
}
return Arrays.equals(array, ((ComparableIntArray) other).array);
}
@Override
public int hashCode() {
int code = 0;
for (int i = 0; i < array.length; i++) {
code = (code * 31) + array[i];
}
return code;
}
@Override
public int compareTo(ComparableIntArray other) {
int len = Math.min(array.length, other.array.length);
for (int i = 0; i < len; i++) {
int diff = array[i] - other.array[i];
if (diff != 0) {
return diff;
}
}
return array.length - other.array.length;
}
}
两个数组,里面元素一个接一个的比较
浙公网安备 33010602011771号