如何实现多键查找

时间:2015-06-12 13:37:14

标签: scala dictionary

我需要一个使用两个键查找的数据结构。

每种选择的优点和缺点是什么?

  • Map[K1, Map[K2, V]]
  • Map[(K1, K2), V]

似乎后一种解决方案需要实例化很多元组:get(k1, k2) = m.get((k1,k2))

用例是一个缓存,所以读取比写入更明显,Mapscala.collection.concurrent.Map

1 个答案:

答案 0 :(得分:1)

如果你期望每个K1会有很多K2,但不是相反,第一个可能会更好。它将使用更多的内存,因为你有两个地图结构,你会有更多的指针间接,虽然这不太重要。

后者是我使用的,因为它更贴切地代表了您尝试做的事情。