Groovy map 实战

在列表4.16中,我们回顾了最初的用于统计单词出现频率的例子,这个策略使用一个map,每一个独立的单词作为map的key,map的value是对应单词在文本中出现的频率,我们检查整个文本中的每一个单词,增加map中相应单词的频率值,同时需要保证当文本中的单词第一次出现时,该单词的频率值要正确的增加,幸运的是get(key,default)可以来完成这个工作。

处理完成所有的单词之后,将这些放在一个list中,然后根据其相应的出现频率进行排序,最后打印出这些统计信息。

(1)很好的展示了我们在groovy的数据类型中的相关知识,统计单词出现频率实际上是一个铺垫,它甚至比我们在这件开始使用的伪代码还要简短。

(2)在wordList上的sort方法接受一个闭包是十分有益的,因为这能够在wordFrequency这个map上实现比较逻辑——这是与wordList完全不同的对象,这仅仅是一个练习,在java中也试试,统计行数,并且判断解决方法的可表达性。

List和map是非常强大的,整个语言都建立在这两个数据类型上(如Perl是list和hash)并且实现所有别的类型及对象。

它们强大的功能来自java集合框架,感谢groovy,现在我们可以方便的使用这些功能了。

到目前为止,我们没有转回到groovy和java集合类型,在下节将了解更多它们之间相互作用的地方。