В google/guava@GitHub класс Хеширование реализовано согласованное хэширование@wiki. Для метода consistentHash
требуется HashCode
< /а> объект:
public static int consistentHash(HashCode hashCode, int buckets) {
return consistentHash(hashCode.padToLong(), buckets);
}
Я реализую прототип распределенного хранилища ключей и значений и хочу разделить пространство ключей с помощью пользовательского ключа Row
и Column
.
public int locateNodeIndexFor(Row r, Column c, int buckets) {
HashCode hashCode = // How to generate a HashCode based on @param r and @param c?
return Hashing.consistentHash(hashCode, buckets);
}
Здесь класс Row
(и класс Column
) является просто оболочкой поля String
и имеет собственный метод hashCode()
. Мой вопрос: как сгенерировать HashCode
на основе @param r и @param c в locateNodeIndexFor
, чтобы вызвать Hashing#consistentHash
?