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