xref: /XiangShan/src/main/scala/utils/SeqUtils.scala (revision 2fbf124591fc3d1afb86f8e0512ca15f94c8de04)
1package utils
2
3import scala.collection.mutable
4
5object SeqUtils {
6  /**
7    * @todo remove it when when xiangshan is updated to 2.13.11
8    */
9  def distinctBy[A, B](seqLike: Seq[B])(f: B => A): Seq[B] = {
10    val seen = new mutable.HashSet[A]()
11    var res = Seq[B]()
12    val it = seqLike.iterator
13    while (it.hasNext) {
14      val next = it.next
15      if (seen.add(f(next))) {
16        res :+= next
17      }
18    }
19    res
20  }
21}
22