Метод groupBy
принимает функцию предиката в качестве параметра и использует ее для группировки элементов по ключу и значениям в коллекцию Map.
Согласно документации Scala, определение метода groupBy выглядит следующим образом:
groupBy[K](f: (A) ⇒ K): immutable.Map[K, Repr]
Следовательно, предполагая, что у вас есть кортеж Int и String и вы хотите сгруппировать строки, я бы выполнил следующие шаги
1. Create a list from tuple
2. Filter out types other than String
3. Apply groupBy on the list
Код для этого следующим образом: -
("Every", "student", "likes", "Scala", 1, 5, 54, 0, 1, 0)
.productIterator.toList
.filter(_.isInstanceOf[String])
.map(_.asInstanceOf[String])
.groupBy((element: String) => element.length)