创建了两个自定义类,例如A和B,其中A由一对整数定义,B由类型A的数组定义(B是整数对数组)。我试图将大量B对象存储在哈希表中,使用B&#39的数组中的第一对作为哈希键。我已经覆盖了两个类的hashCode,并且在重写A的equals()方法时,我试图像这样增加一个比较计数器:
public boolean equals(Object b)
{
comparisons++; //predefined as a field of A
return int1==((A)b).int1 && int2==((A)b).int2;
}
然而,虽然我相信这段代码是有道理的,但在main中使用它是这样的:
B b = new B(pairsOfA);
key = b.pairs[0]; //use first pair as key for hash table
hTable.put(key, b);
comparisons = comparisons + hTable.get(key).pairs[0].comparisons;
只获取get方法中使用的比较次数,因为每个表成员在搜索过程中只比较一次,我假设。有没有办法在哈希重写hashTable.put()?
时计算比较