Живой пример здесь: Пример Scastie
Я не понимаю, как это работает.У меня есть Seq кортежей, таких как:
val v = Seq(
("provider@test.com",2),
("consumer@test.com",2),
("provider@test.com",9),
("provider@test.com",10)
)
Я хочу сгруппировать их так:
v.groupBy{ case(email, id) => id }
Это приводит к:
Map(
2 -> List(
(provider@test.com,2),
(consumer@test.com,2)
),
10 -> List(
(provider@test.com,10)
),
9 -> List(
(provider@test.com,9)
)
)
Что делаетпрекрасный смысл, но теперь, если я снова сопоставлю их так:
v.groupBy{ case(email, id) => id}.map{case(id, data) => data.head}.toSeq
Я ожидаю, что результат будет:
Vector((provider@test.com,2), (provider@test.com,10), (provider@test.com,9))
Однако я получаю:
Vector((provider@test.com,9))
Что не так?