当我尝试使用内置函数List(el1,el2 ..)。permutations生成Scala列表元素的排列时,堆耗尽内存。
有没有办法批量生成这种排列并将它们存储在某个文件中?那么它不会耗尽内存吗?
答案 0 :(得分:4)
你可以这样做:
list.permutations foreach { x =>
// Save permutation to file.
}
如果要将排列保存在更大的块中,可以先对排列进行分组(使用适当的块大小):
list.permutations.grouped(chunkSize) foreach { x =>
// Save chunk of permutations to file.
}
从permutations方法返回的迭代器将在保存到文件后丢弃排列。它也是懒惰的,因此在保存上一个块之前不会计算其他排列。