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