用于跟踪角色的好收藏品

时间:2011-02-21 03:28:48

标签: java collections

只是一个普遍的问题(我对java有点新鲜)但是什么是一个好的集合,我可以添加对象,并跟踪我添加了多少个?例如,如果我一次添加一个字符,它将有26个不同的字符,每个字符的关联值为1。同样地,添加'z'10次会有z与相关联的10.建议?名称“哈希表”听起来很有希望,但我认为我不想使用它......

3 个答案:

答案 0 :(得分:1)

首先想到的是词典。键将是字符的ASCII值,值将是它使用的次数。不一定是最有效的方法,但它是最简单的方法之一。

您也可以使用单个数组执行此操作,并将值0偏移为第一个ASCII字符。

如果你想要一个非常快速的实现,HashMap实际上是一个非常好的主意。

对于并发性,您可以使用ConcurrentHashMap。

答案 1 :(得分:0)

Multiset是用于此目的的数据结构。 Guava有一个实现。

Multiset<Character> charFrequency=HashMultiset.create();
charFrequency.add(char1);
charFrequency.add(char1);
charFrequency.count(char1)

答案 2 :(得分:0)

没有必要使用特殊的数据结构,因为简单地使用HashMap应该可以正常工作。添加char,myChar时,调用get(myChar),如果为null,则为该Character的地图创建一个新项,其Integer值为1.如果Map返回一个Integer,只需向其添加一个,然后把它放回地图。