У меня есть класс домена с 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,Leo], [29, Dan]], Lon:[[34, Doe], [34, Tim]..
или
[New:[[25:Leo], [29: Dan]], Lon:[[34: Doe], [34: Tim]..
но я получил
[New:[[25, 29], [Leo, Dan]], Lon:[[34, 34, 34], [Doe, Tim, Jin]], Par:[[34], [Bob]]]
Контекст: я хочу извлечь объекты из группы классов домена по полю и показать два, отправить эти списки в представление.