Учитывая этот код
val list = List(
Person("John", "Paris", 1956);
Person("Jane", "London", 1954);
Person("James", "Paris", 1972);
Person("Marie", "London", 1959);
)
Я хочу создать карту (ключ-> значение), в которой ключом является город, а значением является средний возраст людей, живущих в этом городе.
Я использовал метод groupBy:
val groupedByCity = list.groupBy(_.city);
Которые дают мне это:
Map(Paris -> List(Person(Jonh, Paris, 1956), Person(James, Paris, 1972)), London -> List( Person(Jane, London, 1954), Person(Marie, London, 1959)));
Как я могу переназначить это, чтобы отфильтровать нужную мне информацию, то есть средний возраст по городам?
Спасибо за помощь.
code
val mediumAgeByCity = groupedByCity.mapValues( p => p.map(2014-_.birth).sum/p.size);code
11.12.2014