我需要一个使用两个键查找的数据结构。
每种选择的优点和缺点是什么?
Map[K1, Map[K2, V]]
Map[(K1, K2), V]
似乎后一种解决方案需要实例化很多元组:get(k1, k2) = m.get((k1,k2))
用例是一个缓存,所以读取比写入更明显,Map
是scala.collection.concurrent.Map
答案 0 :(得分:1)
如果你期望每个K1会有很多K2,但不是相反,第一个可能会更好。它将使用更多的内存,因为你有两个地图结构,你会有更多的指针间接,虽然这不太重要。
后者是我使用的,因为它更贴切地代表了您尝试做的事情。