首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

LRU算法,该怎么解决

2012-01-01 
LRU算法preimportjava.util.*publicclassLinkedHashMapDemo{publicstaticvoidmain(String[]args){Strin

LRU算法
<pre>
import   java.util.*;

public   class   LinkedHashMapDemo   {
   
    public   static   void   main(String[]   args)   {
        String[][]   str={
        { "Kobe ", "Bryant "},
        { "Tracy ", "McGrady "},
        { "Allen ", "Iverson "},
        { "Dwyne ", "Wade "},
        { "Kevin ", "Garnett "},
        };
        Map <String,String>   linkedMap   =   new   LinkedHashMap <String,String> ();
        for(int   i   =   0   ;   i   <   str.length   ;   i++){
                linkedMap.put(str[i][0],str[i][1]);
        }
        System.out.println(linkedMap);
        //   Least-recently   used   order:
        linkedMap   =   new   LinkedHashMap <String,String> (16,   0.75f,true);
        //为什么这里这样定义LinkedHashMap就会自动用LRU算法?
        for(int   i   =   0   ;   i   <   str.length   ;   i++){
                linkedMap.put(str[i][0],str[i][1]);
        }
        System.out.println(linkedMap);
        for(int   i   =   0;   i   <   3;   i++)   //   Cause   accesses:
                linkedMap.get(str[i][0]);
        System.out.println(linkedMap);
        linkedMap.get( "Tracy ");
        System.out.println(linkedMap);
    }
}
</pre>
这是输出结果:
{Kobe=Bryant,   Tracy=McGrady,   Allen=Iverson,   Dwyne=Wade,   Kevin=Garnett}
{Kobe=Bryant,   Tracy=McGrady,   Allen=Iverson,   Dwyne=Wade,   Kevin=Garnett}
{Dwyne=Wade,   Kevin=Garnett,   Kobe=Bryant,   Tracy=McGrady,   Allen=Iverson}
{Dwyne=Wade,   Kevin=Garnett,   Kobe=Bryant,   Allen=Iverson,   Tracy=McGrady}


[解决办法]
这个。。。看API吧:
LinkedHashMap
public LinkedHashMap(int initialCapacity,float loadFactor,boolean accessOrder)
构造一个带指定初始容量、加载因子和排序模式的空 LinkedHashMap 实例。

参数:
initialCapacity - 初始容量。
loadFactor - 加载因子。
accessOrder - 排序模式 - 对于访问顺序,为 true;对于插入顺序,则为 false。

[解决办法]
加载因子是已存和的数据容量与总容量的比率,采用小数表示,默认为 0.75,即表示当 Map 中的数据量达到总容量的 75% 时,其容量空间自动扩张至原容量的一倍。一般来说,没有什么特殊的要求,不建议去更改。

热点排行
Bad Request.