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