1package utils 2 3object MapUtils { 4 def groupByValueUnique[K, V](map: Map[K, V]) : Map[V, Set[K]] = { 5 map.toSeq 6 .groupBy(_._2) // group by keys 7 .map { case (key /* V */, seq: Seq[(K, V)]) => (key, seq.map(_._1).toSet) } 8 } 9 10 def groupByValue[K, V](map: Map[K, V]) : Map[V, Seq[K]] = { 11 map.toSeq 12 .groupBy(_._2) // group by keys 13 .map { case (key /* V */, seq: Seq[(K, V)]) => (key, seq.map(_._1)) } 14 } 15} 16