所以,我正在浏览一个包含不同类型事物的长列表。让我们说它有不同种类的食物的名称。列表可能如下所示:
olive potato strawberry potato potato strawberry
我想存储每个对象类型和对象类型出现的次数。而且,我无法提前枚举所有对象类型。我事先并不知道所有的食物都是什么。
我想要输出这样的东西:
potato (3) strawberry (2) olive (1)
基本上,按频率顺序列出对象类型。什么是最好的数据结构?是否有任何我可以使用的Java内置类可以防止我重新发明轮子?
答案 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。