各种小HashSet和1个大HashSet之间的搜索区别是什么?

时间:2016-12-14 11:27:41

标签: java performance collections hashmap hashset

我做了一些POC,发现当我搜索一大套400件物品时,它比搜索20件20件物品快6-7倍。虽然在这两种情况下都使用了散列,但循环成本如何呢?

1 个答案:

答案 0 :(得分:0)

您希望它花费相同的时间还是20倍?有20组,平均需要10.5次查找(假设项目恰好存在于其中一项中),因此应该得到10.5的因子。这是合理的接近您报告的因子6-7。由于您没有给我们任何代码,我们无法指出您的基准测试失败的位置。但是,如果没有阅读关于how to benchmark的内容,那么没有人能够做到正确。

如果您想了解更多信息,请向我们提供更多详细信息。

PS:你几乎不应该像你当时可能使用的那样使用20套。 Map<Item, Integer>作为集合分区的表示要好得多,并且与Set<Item>一样快(实际上,Set是通过Map实现的。