2009-04-08 6 views
11

Wie sortiere ich eine ArrayList von String in der Reihenfolge der Länge der Zeichenfolge in Groovy?Groovy: Wie sortiere ich eine ArrayList von String: s in der Reihenfolge der Länge der Zeichenfolge?

Code:

def words = ['groovy', 'is', 'cool'] 
// your code goes here: 
// code that sorts words in ascending length-of-word order 
assert words == ['is', 'cool', 'groovy'] 

Es gibt sicherlich mehr als einen Weg, es zu tun - so werde ich die Antwort auf die Person gewähren, die die eleganteste Lösung.

Antwort

28
words = words.sort { it.size() } 

Um Ordnung

words = words.sort { -it.size() } 
+1

es ist eine Schande, dass dies absteigend - auch im Jahr 2013 - nicht Teil der offiziellen groovy docs (zumindest ich habe noch nie gefunden). – Sliq

+0

@Panique: was genau würdest du erwarten zu finden? Die Sortiermethode befindet sich in den API-Dokumenten, der Rest versteht nur, wie Schließungen funktionieren. –

+0

@MichaelBorgwardt Ich habe gerade nach Stunden, Tagen, Wochen, Jahren und vielleicht Jahrhunderten nach dem kleinen Minus in '-it.size()' gesucht. Nie zuvor gesehen. Eine gute Dokumentation sollte solche Informationen geben, da dies grundlegende Dinge sind. – Sliq