【发布时间】:2017-09-14 09:34:27
【问题描述】:
我正在尝试创建一个抽象类 Coin,具有实例变量名称(字符串)、符号(java.awt.Image 类型)和哈希(字符串)。问题是我需要创建属性散列与默认 hashcode() 方法返回的散列不同,因此具有唯一的 Coin 散列。
abstract class Coin {
private String name;
private Image symbol;
private String hash;
}
【问题讨论】:
-
哈希码不是
String。您总是可以尝试return name.hashCode()+symbol.hashCode()形式的东西,但哈希码的本质是它们不是唯一的。这里没有generics。 -
哈希计算应该按照与
equals()相同的理念设计(编码)——这是相等的比较。哈希可以重复 - equals() 告诉真 -
stackoverflow.com/questions/113511/… - 看看这个。解释创建自己的哈希的好方法
-
@EJP 是的,你说得对,哈希码不是字符串,但是在这个特定的任务中,我需要将哈希设为字符串并让 Coin 的哈希唯一。好吧,我可能错误地解释了任务的实现,但我很想看看你实现它的方式。 (对于草率的代码,我很抱歉,但我是初学者)
-
赋值“唯一哈希”不正确。不知道,这是学校(理解不好),还是行业(XY问题)
标签: java generics hash interface hash-code-uniqueness