Grails findAll和GroupBy

Grails findAll和GroupBy,grails,groovy,group-by,findall,Grails,Groovy,Group By,Findall,我有一个域类,包含3个字段:名称、年龄和城市。我想找到所有受城市年龄和群体限制的项目。这是我目前的代码: import groovy.transform.* @Canonical class Person{ String name int age String city } List<Person> list = [ new Person('Jey', 42, 'New'), new Person('Leo', 25, 'New'),

我有一个域类,包含3个字段:名称、年龄和城市。我想找到所有受城市年龄和群体限制的项目。这是我目前的代码:

import groovy.transform.*
@Canonical
class Person{
    String name
    int age
    String city
} 
List<Person> list = [
    new Person('Jey', 42, 'New'),
    new Person('Leo', 25, 'New'),
    new Person('Dan', 29, 'New'),
    new Person('Alex', 36, 'Fran'),
    new Person('Doe', 34, 'Lon'),
    new Person('Tim', 34, 'Lon'),
    new Person('Jin', 34, 'Lon'),
    new Person('Bob', 34, 'Par'),  
    new Person('Ken', 37, 'Par'),    
]
groupByCity = list.findAll{it.age < 36}.groupBy{it.city}.collectEntries{key, value -> [(key): [value.age, value.name]]}
println groupByCity

但是我有

 [New:[[25, 29], [Leo, Dan]], Lon:[[34, 34, 34], [Doe, Tim, Jin]], Par:[[34], [Bob]]]

上下文:我想按字段从域类组中提取对象,并显示两个,然后将这些列表发送到视图。

这是因为该值是一个列表,
[value.age,value.name]
导致
[[25,29],[Leo,Dan]]…

添加对方付费呼叫以提取所需结果-

list
.findAll{it.age < 36}
.groupBy{it.city}
.collectEntries{key, value -> [(key): value.collect{ [it.age, it.name] }]} 
列表
.findAll{it.age<36}
.groupBy{it.city}
.collectEntries{key,value->[(key):value.collect{[it.age,it.name]}]
 [New:[[25, 29], [Leo, Dan]], Lon:[[34, 34, 34], [Doe, Tim, Jin]], Par:[[34], [Bob]]]
list
.findAll{it.age < 36}
.groupBy{it.city}
.collectEntries{key, value -> [(key): value.collect{ [it.age, it.name] }]}