2009-04-08 10 views
11

Comment trier un ArrayList de String dans l'ordre de la longueur de chaîne dans Groovy?Groovy: Comment trier une ArrayList de String: s dans l'ordre de la longueur de la chaîne?

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'] 

Il y a certainement plus d'une façon de le faire - donc je vais accorder la réponse à la personne qui fournit la solution la plus élégante.

Répondre

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

Pour obtenir l'ordre décroissant

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

il est dommage que ce soit - même en 2013 - ne fait pas partie des documents officiels groovy (au moins je ne l'ai jamais trouvé cela). – Sliq

+0

@Panique: que voulez-vous exactement trouver? La méthode de tri est dans les documents de l'API, le reste est juste de comprendre comment fonctionnent les fermetures. –

+0

@MichaelBorgwardt Je viens de chercher des heures, des jours, des semaines, des années et peut-être des siècles pour ce petit signe dans '-it.size()'. Je n'ai jamais vu ça avant. Une bonne documentation devrait donner de telles informations, car ce sont des choses de base. – Sliq

Questions connexes