List の最後の何個、とかを取得する方法が面白い

Groovyイン・アクション の 4.3.3 マップの実装で

wordList[-1..-6].each {}

とかさりげなく出て来たんですが、個人的には超びっくらこいた。
確かに List で負数を Index に使えるのは説明に出てたんですが、こういう使い方をする為の物だったのか! (`・ω・´;)
気付かなかった。。。


なるほどなー、こりゃ便利だ。
ちなみにここに出てくる wordList は、予めとある英文に出てくる単語の出現頻度順で並び替えられてるので、リストの最後が一番出現頻度の高い物。
だから、上の each だと出現頻度の高い単語順でクロージャが実行される感じですねー。1位〜6位みたいな。
6位〜1位にしたかったら

wordList[-6..-1].each {}

でまっちり。 (*ノωノ)