gpt4 book ai didi

scala - 在 Scala 的一个 for 循环中高效地迭代一个 Set,然后再迭代另一个

转载 作者:行者123 更新时间:2023-12-01 07:10:44 25 4
gpt4 key购买 nike

我想遍历一个 Set 的所有元素,然后是另一个 Set 的所有元素,使用单个循环。 (我不在乎重复,因为我碰巧知道两个 Set 是不相交的。)

我想在单个循环中执行它的原因是因为我有一些额外的代码来衡量进度,这要求它在单个循环中。

这在一般情况下不起作用,因为它可能会混合两个 Set s 任意:

for(x <- firstSet ++ secondSet) {
...
}

这有效,但会构建 3 个中间 Seq s 在内存中,因此在时间和空间使用方面效率太低:
for(x <- firstSet.toSeq ++ secondSet.toSeq) {
...
}

最佳答案

for(x <- firstSet.toIterator ++ secondSet.toIterator) {
...
}

这不会构建任何中间数据结构,所以我认为这是最有效的方式。

关于scala - 在 Scala 的一个 for 循环中高效地迭代一个 Set,然后再迭代另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17378357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com