我不会在这段代码中理解hashcode()
方法:如果有字符串,你怎么能返回一个整数...基本上你在一个数字旁边添加一个字符串但是并没有不料一串
我也不理解函数等于什么是对象o什么是o insteadof
public Imatriculation(int numeros, String word) {
this.numeros = numeros;
this.word = word;
}
public int hashCode() {
return this.word.hashCode() + this.numeros;
}
public boolean equals(Object o) {
return o instanceof Imatriculation
&& this.word.equals(((Imatriculation) o).word)
&& this.numeros == ((Imatriculation) o).numeros;
}
答案 0 :(得分:0)
正如已经指出的那样,hashcode返回一个int而不是一个字符串。
“o”只是java中的任何对象,它可以是任何对象,因此instanceof用于检查对象“o”是否为Imatriculation,然后再继续检查对象的细节。
答案 1 :(得分:0)
String#hashCode()
覆盖 Object#hashCode()
,因此它也会返回int
。来自String
来源:
public int hashCode() { // <- it returns int!!!
int h = hash;
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
}
hashCode()
的主要目的是&#34;数字代表&#34;一个类的实例,以确定它应该占用哪个hash table桶。