2011-03-10 150 views
0

我有一个类型为HashMap<Long, ArrayList<String>>的散列表。重写HashMap实现的equals()和hashCode()方法

我需要重写equals()和hashCode()方法来获得性能。在这种情况下,最重要的功能应该是什么?

我知道确切的没有。的元素我会放在HashMap中,因此我已经使用了initial Capacity = (No. Of Elements that will be put)/ 0.75

其中0.75 =>加载因子, 这是正确的吗?

+1

为什么你认为HashMap上的equals()和hashCode()方法是性能瓶颈?这些课程经过了充分测试,并在各地使用。 – Jeremy 2011-03-10 23:28:49

+0

对于所有Map和Collection实现的'equals'和'hashCode'方法都有非常具体的合约。正如其他人所说的,你不会比合同中现有的实现更好。 – ColinD 2011-03-10 23:29:07

回答

4

HashMapequals(..)方法具有线性复杂度(当你使用一个对象作为一个HashMap关键,你应该确保它有那些方法一致的实现您是在正确的)。 ArrayList也是如此。我认为它不会更好 - 你必须比较每个元素

1

你可以假设Java库的对象,如LongArrayListStringequals()hashCode()正确的实现。

相关问题