我的问题是,我有一个哈希表,它有大约1000000个条目,我需要找到一个值出现在哈希表中的次数。
key1-->val1
key2-->val2
key3-->val3
key4-->val1
key5-->val1
output:
val1==3
val2==1
val3==1
我可以在不同的密钥下存储相同的值吗?如果可能的话,我如何才能有效地找到出现的数量?
答案 0 :(得分:3)
是的,您可以在不同的密钥下存储相同的值。为了计算出现次数,我可能会维护一个将值映射到计数的辅助映射。每次在第一个地图中插入一个值时,都会检查它是否在第二个地图中有一个条目。如果是,您可以简单地增加计数。否则,您插入一个计数为1
的新条目。
答案 1 :(得分:1)
是的,哈希表可以在不同的密钥下存储相同的值。在Java中,您可以调用Hashtable#values方法来获取该哈希表中的所有值。然后,您可以使用它来计算特定值发生的次数。
鉴于散列表的大小(100万个条目),我会寻找更有效的解决方案(如@Vivin Paliath提出的解决方案)。