0
我正在用Scala包裝一個可變的並行映射,並想要從映射中刪除並返回一個值。目前的實施如下...從並行,可變映射中刪除並返回單個值
class MyContainer[O] {
def remove(uuid: UUID): Option[O] = backingStore.get(uuid) match {
case result @ Some(item) => backingStore -= item.uuid; result
case None => None
}
private[this] val backingStore: parallel.mutable.ParHashMap[UUID, O]
}
......但這似乎不雅。有沒有一種更習慣的方式來實現這一點?也許沒有模式匹配?
可變的平行聽起來像是一場災難......你確定返回
Option
使用collect
有沒有更好的辦法?例如。通過TrieMap? – Reactormonk@Reactormonk該計劃是隻有一個主線程將訪問該容器,但該容器方法將被並行化。但我明白你的意思,並將研究TrieMap(已經有一個'remove'方法)。 – davidrpugh