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]
}
...しかしこれは控えめです。これを達成するためにもっと慣れ親しんだ方法がありますか?おそらくパターンマッチングなし?
変更可能な並列音災害のためのレシピ...あなたは確信しているよう
get
メソッドによって返さOption
にcollect
を使用できますか?例えば。 TrieMapを介して? – Reactormonk@Reactormonk 1つのメインスレッドだけがコンテナにアクセスしますが、そのコンテナメソッドは並列化されるという計画です。しかし、私はあなたの要点を受け取り、TrieMap(既に 'remove'メソッドを持っています)を調べます。 – davidrpugh