计算出的哈希码位于一个特定的数值范围内?

问题描述 投票:-1回答:1

我有一个函数,它看起来像这样。

public int getHashcode(int shardCount){

    String personid = "<some long string value>";
    String servicedate = "2019-12-22T01:31:30.000Z";
    HashCodeBuilder hashCodeBuilder = new HashCodeBuilder();
    return hashCodeBuilder.append(personid).append(servicedate).toHashCode() % shardCount;

//the shard count key comes in from a config file and has various values
// like 2,5,15,25 etc depending on some criteria
}

现在,我的要求是,我想让这个方法返回哈希码,使其在0 -10的范围内,并且不超过10。我认为最简单的方法是在返回值之前添加一个条件检查,然后按照我的意愿返回一个随机值,但这是一个最佳解决方案吗,或者我应该放一个固定的 "shardCount "值来实现这个结果?

java arrays hashcode gethashcode mod
1个回答
1
投票

最简单的方法是返回除以 10.

替换

return hashCodeBuilder.append(personid).append(servicedate).toHashCode() % shardCount;

return (hashCodeBuilder.append(personid).append(servicedate).toHashCode() % shardCount) % 10;
© www.soinside.com 2019 - 2024. All rights reserved.