xref: /XiangShan/src/main/scala/utils/MapUtils.scala (revision ceba215ad376611ba6c994765c6e33e6b5749316)
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