日期:2014-05-20  浏览次数:20731 次

最近碰到的一道问题
哪个Map最适合用来实现LRU   Cache?
A     TreeMap
B     HashMap
C     WeakHashMap
D     Hashtable
E     IdentitiyHashMap


希望能有高手解答一下     解释一下具体的原因     谢谢了

------解决方案--------------------
LRU是Least Recently Used(最久未使用),也就是说需要对缓存的对象的时间进行记录(这个时间可能会被更新),而根据这个时间进行缓存的更新。这样的话,选择A TreeMap比较合适:把缓存的时间作为key(当然需要不同的对象缓存时间不同),缓存的对象作为value。而根据TreeMap的有序属性,可以很方便的在缓存中删除最久未使用的缓存对象,从而可以添加新缓存的对象。
------解决方案--------------------
我觉得是A,因为TreeMap实现了SortedMap接口,可以对其排序