2012-06-24 7 views
16

in Groovy, come faccio a estrarre una nuova lista dal seguente:Come estrarre una nuova lista da un campo oggetto in Groovy

def people = [ 
      new Person(name:"Tom", yearOfBirth:1985), 
      new Person(name:"Abigail", yearOfBirth:1987), 
      new Person(name:"Joyce", yearOfBirth:1984), 
      new Person(name:"James", yearOfBirth:1987), 
      new Person(name:"Scott", yearOfBirth:1985), 
      new Person(name:"Ruth", yearOfBirth:1984) 
     ] 

    class Person { 
     String name 
     int yearOfBirth 
    } 

in modo che la nuova lista si presenta così:

["Tom", "Abigail", "Joyce", "James", "Scott", "Ruth"]  

risposta

22

Si può fare:

def names = people.name 
+0

Perfetto, come potrei sostituire "Tom" con "Tim" nel processo? – Reimeus

+5

Avresti bisogno di qualcosa come 'people.collect {it.name == 'Tom'? 'Tim': it.name} ' –

+0

@tim_yates C'è qualche motivo per cui preferisci questo invece di' def names = people * .name'? Personalmente preferisco il dopo. (A proposito, trovo divertente che Reimeus voglia sostituire Tom con te = P) – epidemian

Problemi correlati