我觉的jive的cache中双向链表并没有用

06-06-14 smile010
我觉的jive的cache中双向链表并没有用,

对象都是存在Hashmap中的,取一个对象只需get(key),一下就行了,

而在hashmap中get()并不是链表遍历,它和双象链表中对象排前排后并没有关系啊,并不是说排前的就能用更少的时间查到.

那他为什么还要设置双向链表呢?

请高手指点,谢谢!

banq
2006-06-15 09:02
有些记不得,做缓存一般使用LRU算法,将最常用的排在前面。

asklxf
2006-06-22 15:02
如果你只用HashMap,那缓存的东西只放进去拿不出来,内存迟早被耗尽,所以要限定缓存的数量,达到最大数量后,再放新的时,用LRU算法抛弃最久没有使用的

jive开发时,jdk还在1.2 or 1.3?,没有直接可以实现这个功能的HashMap,jive只好自己开发了一个,后来jdk1.4引入了LinkedHashMap,可以实现LRU的Map,拿来做缓存就非常方便了

猜你喜欢