2012-06-24 36 views
16

提取一個新的列表在Groovy中,如何從下面抽出一個新的列表:如何從一個對象場在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 
    } 

,使新名單如下:

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

回答

22

你可以這樣做:

def names = people.name 
+0

完美的是,我會如何在過程中用「Tim」替換「Tom」? – Reimeus

+5

你需要像'people.collect {it.name =='Tom'這樣的東西? 'Tim':it.name}' –

+0

@tim_yates有什麼理由讓你更喜歡這個,而不是'def names = people * .name'?我個人比較喜歡後者。 (順便說一下,我覺得Reimeus想用你來替代Tom = P) – epidemian