哪个是更好的性能明智,地图地图与单个地图与键串联?

时间:2016-02-22 14:06:17

标签: java performance caching dictionary hashmap

我正在Java中实现缓存(显然它有get()put()方法)。我有两个String键和一个Object值。

Key1 + Key2 --> Val('" Key1" +" Key2"'是Key,Val是缓存值)

我有以下两种方法来实现基本操作的缓存。

方法1

拥有单一地图,比如SingleMap<<KeyValue>>,此处密钥是两个密钥(Key1 + Key2)的串联。

获取方法签名

Val SingleMap.get(Key1 + Key2){ }

放置方法签名

 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));

实现缓存的最佳方法(性能方面)是什么? 如果您有其他更好的方法,请告诉我。

1 个答案:

答案 0 :(得分:0)

性能方面,您的第一种方法会更快,因为它只需从1张地图中获取信息。 但是,如果您正在使用此方法,则必须确保密钥始终保持相同的顺序(key1永远不能是key2),否则您必须添加key1 + key2和key2 + key1到地图。

有关收藏集效果的更多信息:http://bigocheatsheet.com/