我有以下两个阶级,要使用Foo1
如在按键HashMap
。 两个Foo1
对象相等,如果他们的Foo2
对象相同,和Foo2
对象相等,如果他们的字节数组满足Arrays.equals()
我不太知道该怎么对做hashCode()
的方法Foo1
。 难道我只是需要总结每个公司的散列码Foo2
对象,或者这是低效?
public class Foo1 {
Foo2[] foo2_array;
@Override
public boolean equals(Object Other) {
for (int i = 0; i < foo2_array.length; i++) {
if (!foo2_array[i].equals(other.foo2_array[i])
return false;
}
return true;
}
@Override
public int hashCode() {
// what to here?
}
}
public class Foo2 {
byte[] values;
@Override
public boolean equals(Object other) {
return Arrays.equals(values, other.values);
}
@Override
public int hashCode() {
return Arrays.hashCode(values);
}
}