将值难度与计数器

时间:2015-10-14 23:54:24

标签: java

我正在阅读文本并计算文本中出现此值的次数。要做到这一点,我使用的是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 = /我觉得我必须真的过度思考它,除非我以这种方式),否则我会为创意而苦苦挣扎我的程序结构不是我试图做的最好的。因为显然我无法比较每个循环的计数器? ....质疑是否有一个散列图可能更好,值得重新启动一切。

无论如何,欢迎任何建议! (这是评估所以请不要给出答案,但更多的可能性如何处理)

1 个答案:

答案 0 :(得分:5)

尝试使用散列图,即

HashMap<Character, Integer> charMap;

整数是您想要跟踪的计数。使用适当的字符填充哈希映射。之后,您可以通过get(“somechar”)方法简单地获取字符并将整数增加1。 在完成对字符的迭代之后,您可以遍历散列映射以确定具有最低/最高频率的字符。