用并行集合就地变换数组
|
当具有一组对象时,通常希望(例如出于性能原因)更新(替换)适当的一些对象。例如,如果您有一个整数数组,则可能要用正整数替换负整数:
// Faster for primitives
var i = 0
while (i < a.length) {
if (a(i) < 0) a(i) = -a(i)
i += 1
}
// Fine for objects, often okay for primitives
for (i <- a.indices) if (a(i) < 0) a(i) = -a(i)
使用并行集合库执行此类修改的规范方法是什么?
没有找到相关结果
已邀请:
3 个回复
社攻取墟槽
请注意,并非所有可变集合都可以通过这种方式修改。通常,如果您想在适当位置进行修改,则必须确保它已正确同步。在这种情况下,这对于数组来说不是问题,因为不同的索引将修改不同的数组元素(并且更改在最后对调用者是可见的,因为并行操作的完成保证了所有写操作对调用者都是可见的)。
场竟矩喘崩
邪罗逢确胃