3

所以,我正在浏览一长串不同类型的东西。假设它有不同种类的食物的名称。该列表可能如下所示:

橄榄
土豆
草莓
土豆
土豆
草莓

我想存储每种对象类型以及该对象类型出现的次数。此外,我无法提前枚举所有对象类型。我不知道所有的食物会是什么。

我想要这样的输出:

马铃薯 (3)
草莓 (2)
橄榄 (1)

基本上,按频率排列的对象类型列表。最好的数据结构是什么?Java 中有没有我可以使用的内置类来防止我不得不重新发明轮子?

4

2 回答 2

3

您可以使用HashMap<K,V>

Map<String,int> map = new HashMap<String,int>();
于 2012-08-13T22:45:55.640 回答
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)

然后你可以稍后循环遍历这些键并找到它们的频率。

迈克尔·G。

于 2012-08-13T22:47:22.150 回答