0

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

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

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

我可以在不同的键下存储相同的值吗?如果可能的话,我怎样才能有效地找到出现的次数?

4

2 回答 2

3

Yes, you can store the same value under different keys. To count the occurrences, I would perhaps maintain a secondary map that maps the value to a count. Every time you insert a value into the first map, you check to see if it has an entry in the second map. If it does, you can simply increment the count. Otherwise, you insert a new entry with a count of 1.

于 2013-11-14T18:07:09.460 回答
1

是的,哈希表可以在不同的键下存储相同的值。在 Java 中,您可以调用Hashtable#values方法来获取该哈希表中的所有值。然后,您可以使用它来计算某个值出现的次数。

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

于 2013-11-14T18:14:37.907 回答