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