仅使用不可变集合创建Iterables映射

Kar*_*lek 3 scala

我有一个iterable val pairs: Iterable[Pair[Key, Value]],它有一些key => value对.

现在,我想创建一个Map[Key, Iterable[Value]],每个键都有一个Iterable给定键的所有值pairs.(我实际上并不需要Seq,任何Iterable都可以).

我可以使用mutable Map和/或使用mutable 来做到这一点ListBuffer.

然而,每个人都告诉我,"正确"的scala没有使用可变集合.那么,是否可以仅使用不可变集合来执行此操作?(例如,使用map,foldLeft等等)

Kar*_*lek 5

我发现了一种非常简单的方法

pairs.groupBy{_._1}.mapValues{_.map{_._2}}
Run Code Online (Sandbox Code Playgroud)

就是这样.