Scala生成列表排列耗尽内存



当我尝试使用内置函数list (el1,el2..)生成Scala列表元素的排列时。

是否有办法批量生成这些排列并将它们存储在某个文件中?这样它就不会耗尽内存了?

你可以这样做:

list.permutations foreach { x => 
    // Save permutation to file.
}

如果您想将排列保存在更大的块中,您可以首先对排列进行分组(使用适当的块大小):

list.permutations.grouped(chunkSize) foreach { x =>
    // Save chunk of permutations to file.
}

permutations方法返回的迭代器将在排列保存到文件后丢弃它们。它也是惰性的,因此在保存前一个块之前不会计算其他排列。

最新更新