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