我正在阅读文本并计算文本中出现此值的次数。要做到这一点,我使用的是ArrayList,只要添加了多个相同类型的字符,这个字符已经存在于我的ArrayList中....我会增加一个计数器。因此,在方法结束时,我能够打印文本中包含的字母表中的字母与其相应的匹配。
for(int i; i < text.length i++)
counter = 0
if arraylist already contains the character then continue
otherwise add the character to the array
for j; j < text.length j++
if index of text(j) and text(i) == the same
counter++
system out print arraylist[i] + counter
这是伪代码,让您了解我的程序是如何工作的,我不想在评估时发布实际代码,并且我意识到人们使用它。
所以,我正在寻找一种方法来确定如何找到已发生的最高和最低字母。除非我将数组列表字符的计数器和索引都传递给某种数据结构(例如hashmap = /我觉得我必须真的过度思考它,除非我以这种方式),否则我会为创意而苦苦挣扎我的程序结构不是我试图做的最好的。因为显然我无法比较每个循环的计数器? ....质疑是否有一个散列图可能更好,值得重新启动一切。
无论如何,欢迎任何建议! (这是评估所以请不要给出答案,但更多的可能性如何处理)
答案 0 :(得分:5)
尝试使用散列图,即
HashMap<Character, Integer> charMap;
整数是您想要跟踪的计数。使用适当的字符填充哈希映射。之后,您可以通过get(“somechar”)方法简单地获取字符并将整数增加1。 在完成对字符的迭代之后,您可以遍历散列映射以确定具有最低/最高频率的字符。