我需要创建一个从stdin读取多行的程序对单词进行计数,然后打印具有出现次数的单词,但如果两个或多个单词具有相同的数字,则必须按字母顺序对它们进行排序。 E.g:
hello: 2
good: 1
morning: 1
world: 1
输出应为:
{{1}}
我想知道哪种方法最好,最好的方法是hashmap吗?
答案 0 :(得分:2)
这实际上是一个比表面看起来更有趣的问题。
基本上HashMap<String, Integer>
是一个不错的选择,建立一个包含所有单词的地图。
然后,您希望从该地图中获取entrySet()
,并将地图中的entrySet()
放入新的ArrayList<Entry<String, Integer>>
。然后,您可以使用Collections.sort
使用自定义比较器对ArrayList
进行排序,该比较器首先按值排序,然后按键排序。
我不会为您提供代码,但如果您对这些步骤有任何具体问题,请随时提出。