特定值出现在哈希表中的次数

时间:2013-11-14 18:04:59

标签: java hashtable

我的问题是,我有一个哈希表,它有大约1000000个条目,我需要找到一个值出现在哈希表中的次数。

key1-->val1
key2-->val2
key3-->val3
key4-->val1
key5-->val1

output:
val1==3
val2==1
val3==1

我可以在不同的密钥下存储相同的值吗?如果可能的话,我如何才能有效地找到出现的数量?

2 个答案:

答案 0 :(得分:3)

是的,您可以在不同的密钥下存储相同的值。为了计算出现次数,我可能会维护一个将值映射到计数的辅助映射。每次在第一个地图中插入一个值时,都会检查它是否在第二个地图中有一个条目。如果是,您可以简单地增加计数。否则,您插入一个计数为1的新条目。

答案 1 :(得分:1)

是的,哈希表可以在不同的密钥下存储相同的值。在Java中,您可以调用Hashtable#values方法来获取该哈希表中的所有值。然后,您可以使用它来计算特定值发生的次数。

鉴于散列表的大小(100万个条目),我会寻找更有效的解决方案(如@Vivin Paliath提出的解决方案)。