-1
我正在Java中實現緩存(顯然它有get()
和put()
方法)。我有兩個String鍵和一個Object值。這是更好的性能明智,地圖與單個地圖與按鍵連接的地圖?
Key1 + Key2 --> Val
(「‘密鑰1’+‘鍵2’」是關鍵和Val是緩存值)
我有以下兩種方法來實現我的緩存與基本操作。
方法1:
有一張地圖,說SingleMap<<Key
,Value>>
,這裏的關鍵是兩個鍵(Key1 + Key2
)的連接。
獲取方法簽名:
Val SingleMap.get(Key1 + Key2){ }
put方法簽名:
void SingleMap.put(Key1 + Key2, val){ }
方法2:
將使用兩個地圖
InnerMap<Key2, val>
OuterMap<Key1, InnerMap>
獲取方法簽名:
Val OuterMap.get(Key1).get(key2){}
把方法簽名:
Void OuterMap.put(Key1, new InnerMap(key2, val));
這是實現高速緩存的最佳方法(性能明智)?
如果您有其他更好的方法,請告訴我。
你可能不會注意到多大的差別在性能方面(你嘗試的東西嗎?),但是從一個存儲點的第一種方法可能會更好,這取決於外鍵集的大小將會有多大(即你最終會得到多少內圖)。除此之外,如果在任何情況下都必須提供兩個密鑰,那麼問題就是爲什麼有兩個密鑰。 – Thomas