2012-06-24 13 views
16

W Groovy, w jaki sposób wyodrębnić nową listę z następujących opcji:Jak wyodrębnić nową listę z pola obiektu w 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 
    } 

tak, że nowa lista wygląda następująco:

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

Odpowiedz

22

można zrobić:

def names = people.name 
+0

Perfect, jak bym zastąpić "Toma" z "Tim" w tym procesie? – Reimeus

+5

Potrzebujesz czegoś takiego jak 'people.collect {it.name == 'Tom'? "Tim": it.name} ' –

+0

@tim_yates Czy jest jakikolwiek powód, dla którego wolisz to zamiast' def names = people * .name'? Osobiście wolę później. (BTW, uważam to za zabawne, że Reimeus chce zastąpić Toma z Tobą = P) – epidemian

Powiązane problemy