加速迭代器中每个元素的散列

Speed up hashing of each element in an Iterator

我有一个 Iterator[String] 类型的迭代器,大小为 2501235 个元素。我还有一个包含 100 个哈希函数的列表,我想用所有哈希函数对 Iterator 中的每个元素进行哈希处理。下面的代码是我目前所拥有的,但是 运行 需要很长时间,有没有办法修复代码以使其 运行 更快?

def hashing_item(value: (Int,List[List[Int]],List[Hash_Function]), item: String): (Int,List[List[Int]],List[Hash_Function])= {
      val (bits,res,elems) = (value._1,value._2,value._3)
      val hashed_input = res ++ List(elems.map(func => func.apply(item) % bits))
      (bits,hashed_input,elems)
    }

val tempList: List[List[Int]] = List()
val hashing_elems = s.foldLeft(bits,tempList,hashes)(hashing_item)

如果我对代码的理解正确,你只需要 flatMap 而不是 foldLeft

iterator.flatMap { item =>
  hashes.iterator.map { func =>
    func.apply(item) % bits
  }
}

这将 return 另一个 Iterator 在需要之前不会计算任何东西。