2017-10-21 32 views
0

我無法根據標準在groovy中輸出整個數組。事實上,我想在下面做的是,如果數組中的名字='彼得',然後輸出所有屬於彼得的信息。目前,我可以讓它顯示唯一相關的Pater的名字,但是如何輸出who數組信息?如何使用find all來顯示基於條件的整個數組?

事實上,目前它輸出:[Peter,Peter,Peter]

我希望它輸出:下面[1,Peter,Smith],[2,Peter,Jonea],[4,Peter,Patel]

代碼:

def array = [[number: 1, forename: "Peter" , surname: "Smith"], 
      [number: 2, forename: "Peter" , surname: "Jones"], 
      [number: 3, forename: "Tom" , surname: "White"], 
      [number: 4, forename: "Peter" , surname: "Patel"], 
      [number: 5, forename: "George" , surname: "Woodburn"]] 


def arrayForenameFindAll = array.forename.findAll{it == "Peter"} 
+0

'array.findAll(it.forename ==「Peter」)'? –

+0

@JBNizet你提出的建議會返回List的'Map',而不是'List'的'List' –

回答

2
def array = [[number: 1, forename: "Peter" , surname: "Smith"], 
     [number: 2, forename: "Peter" , surname: "Jones"], 
     [number: 3, forename: "Tom" , surname: "White"], 
     [number: 4, forename: "Peter" , surname: "Patel"], 
     [number: 5, forename: "George" , surname: "Woodburn"]] 


def arrayForenameFindAll = array.findAll { it.forename == 'Peter' }*.values() 

這將評估到的List一個List喜歡你在問題中描述。