我需要制作一个从stdin读取多行的程序来计算单词,然后打印出现次数的单词,但是如果两个或多个单词具有相同的数字,我必须按字母顺序对其进行排序。
例如:

hello world
good morning
hello


输出应为:

hello: 2
good: 1
morning: 1
world: 1


我想知道哪种方法是最好的,哈希图是最好的方法吗?

最佳答案

这实际上是一个比表面上看起来更有趣的问题。

基本上HashMap<String, Integer>是一个不错的选择,建立一个包含所有单词的Map。

然后,您要从该地图中取出entrySet()并将entrySet()从地图中拖放到新的ArrayList<Entry<String, Integer>>中。然后,您可以使用Collections.sort通过自定义比较器对ArrayList进行排序,该比较器首先按值排序,然后按键排序。

我不会为您提供代码,但是如果您对这些步骤中的任何一个有任何疑问,请随时提出。

09-10 09:50
查看更多