计算字符串Java上的每个单词

时间:2016-02-25 11:28:45

标签: java

我需要创建一个从stdin读取多行的程序对单词进行计数,然后打印具有出现次数的单词,但如果两个或多个单词具有相同的数字,则必须按字母顺序对它们进行排序。 E.g:

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

输出应为:

{{1}}

我想知道哪种方法最好,最好的方法是hashmap吗?

1 个答案:

答案 0 :(得分:2)

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

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

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

我不会为您提供代码,但如果您对这些步骤有任何具体问题,请随时提出。

相关问题