java – 从string和int创建哈希
发布时间:2020-08-04 10:46:50 所属栏目:Java 来源:互联网
导读:我记得 eclipse和想法有这个模板根据自己的属性自动创建一个对象的hashCode. 使用数字和字符串的策略之一就是这样. return stringValue.hashCode() + intValue * 32; 不好意思 我没有,也没有eclipse或想法在手边,我想创建这样的功能. 编辑 根据答案我创建这个
|
我记得 eclipse和想法有这个模板根据自己的属性自动创建一个对象的hashCode. 使用数字和字符串的策略之一就是这样. return stringValue.hashCode() + intValue * 32; 不好意思 我没有,也没有eclipse或想法在手边,我想创建这样的功能. 编辑 根据答案我创建这个迷你类 class StringInt {
private final String s;
private final int i;
static StringInt valueOf( String string,int value ) {
return new StringInt( string,value );
}
private StringInt( String string,int value ) {
this.s = string;
this.i = value;
}
public boolean equals( Object o ) {
if( o != null && o instanceof StringInt ){
StringInt other = ( StringInt ) o;
return this.s == other.s && this.i == other.i;
}
return false;
}
public int hashCode() {
return s != null ? s.hashCode() * 37 + i : i;
}
}
这个类被用作大的内存映射(> 10k元素)的关键字,我不想每次迭代它们来查找String和int是否相同. 谢谢. ps .. mmh可能应该是StringIntKey的名字. 解决方法使用Apache Commons HashcodeBuilder:public int hashCode() {
new HashCodeBuilder(17,37).
append(myString).
append(myInt);
}
链接到这里 和这里: http://www.koders.com/java/fidCE4E86F23847AE93909CE105394B668DDB0F491A.aspx (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
