我需要制作一个从标准输入读取多行的程序,对单词进行计数,然后打印单词的出现次数,但如果两个或多个单词具有相同的数字,我必须按字母顺序对它们进行排序。 例如:
hello world
good morning
hello
输出应该是:
hello: 2
good: 1
morning: 1
world: 1
我想知道哪种方法是最好的方法,hashmap 是最好的方法吗?
最佳答案
这实际上是一个比表面上看起来更有趣的问题。
基本上是HashMap<String, Integer>
建立一个包含所有单词的 map 是一个不错的选择。
然后您想要获取entrySet()
从该 map 中删除 entrySet()
从 map 进入新ArrayList<Entry<String, Integer>>
。然后您可以使用Collections.sort
对 ArrayList
进行排序使用自定义比较器,首先按值排序,然后按键排序。
我不会为您提供代码,但如果您对这些步骤有任何具体问题,请随时询问。
关于java - Java 计算字符串中每个单词的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626010/