用于维护按频率排序的对象类型列表的最佳数据结构

时间:2012-08-13 22:40:29

标签: data-structures frequency sortedlist

所以,我正在浏览一个包含不同类型事物的长列表。让我们说它有不同种类的食物的名称。列表可能如下所示:

olive
potato
strawberry
potato
potato
strawberry

我想存储每个对象类型和对象类型出现的次数。而且,我无法提前枚举所有对象类型。我事先并不知道所有的食物都是什么。

我想要输出这样的东西:

potato (3)
strawberry (2)
olive (1)

基本上,按频率顺序列出对象类型。什么是最好的数据结构?是否有任何我可以使用的Java内置类可以防止我重新发明轮子?

2 个答案:

答案 0 :(得分:3)

您可以使用HashMap<K,V>

Map<String,int> map = new HashMap<String,int>();

答案 1 :(得分:0)

我会使用类似字典的结构。那么基本上你的算法看起来像这样:

-Begin Loop
    If current element not a key in dictionary:
        dictionary(element) -> 0 (Dictionary at key 'element' refers to 0)
    Else:
        dictionary(element)++ (increment dictionary at key)

然后你可以循环通过键并找到它们的频率。

Michael G。

相关问题