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