当我尝试使用内置函数 List(el1,el2..).permutations 生成 Scala 列表元素的排列时,堆内存不足。
有没有办法批量生成这种排列并将它们存储在某个文件中?这样它就不会耗尽内存?
最佳答案
你可以这样做:
list.permutations foreach { x =>
// Save permutation to file.
}
如果您想将排列保存在更大的 block 中,您可以首先对排列进行分组(使用适当的 block 大小):
list.permutations.grouped(chunkSize) foreach { x =>
// Save chunk of permutations to file.
}
从排列方法返回的迭代器将在排列保存到文件后丢弃排列。它也是惰性的,因此在保存前一个 block 之前不会计算其他排列。
关于Scala 生成列表的排列耗尽内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31299130/