2009-04-08 45 views
11

¿Cómo ordeno un ArrayList de String en orden de longitud de cadena en Groovy?Groovy: ¿Cómo puedo ordenar una ArrayList of String: s en orden de longitud de cadena?

Código:

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 cierto que hay más de una manera de hacerlo - así que voy a concedo la respuesta a la persona que proporciona la solución más elegante.

Respuesta

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

Para obtener orden descendente

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

es una pena que este es - incluso en 2013 - no forma parte de los documentos oficiales maravilloso (al menos yo nunca he encontrado esto). – Sliq

+0

@Panique: ¿qué esperarías encontrar exactamente? El método de clasificación está en los documentos de la API, el resto es simplemente entender cómo funcionan los cierres. –

+0

@MichaelBorgwardt Acabo de buscar por horas, días, semanas, años y quizás siglos por ese pequeño menos en '-it.size()'. Nunca he visto eso antes. Una buena documentación debería dar esa información, ya que esto es algo básico. – Sliq

Cuestiones relacionadas