Man*_*ish 2 hashmap linkedhashmap
如LinkdocHashMap的javadoc中所指定的,如果将密钥重新插入到映射中,则插入顺序不会受到影响,但是在运行以下程序时,我注意到在更改访问顺序时再次插入相同的密钥。
Map<Integer, String> map = new LinkedHashMap<Integer,String>(16, .75f, true);
map.put(new Integer(1), "Ajay");
map.put(new Integer(2), "Vijay");
map.put(new Integer(3), "Kiran");
map.put(new Integer(4), "Faiz");
for(String value:map.values()){
System.out.println(value);
}
String val =map.get(new Integer(3));
map.put(new Integer(2), "Ravi");
System.out.println("After changes...");
for(String value:map.values()){
System.out.println(value);
}
Run Code Online (Sandbox Code Playgroud)
在运行上面的程序时,我得到如下的o / p:
Ajay
Vijay
Kiran
Faiz
After changes...
Ajay
Faiz
Kiran
Ravi
Run Code Online (Sandbox Code Playgroud)
当我重新插入使用的密钥2时,为何更改了访问顺序。
请帮助我了解操作说明。
谢谢,
new LinkedHashMap<Integer,String>(16, .75f, true);
Run Code Online (Sandbox Code Playgroud)
这样,true您可以指定要“访问顺序”映射,而不是“插入顺序”映射。
这意味着您将按访问顺序(首先从最近访问)获得值。
您get和put呼叫都构成“访问”。
提供了一个特殊的构造函数来创建链接的哈希映射,其迭代顺序是其条目的最后访问顺序(从最近的访问到最近的访问)(访问顺序)。这种映射非常适合构建LRU缓存。调用put或get方法将导致对相应条目的访问(假设调用完成后该条目存在)。
| 归档时间: |
|
| 查看次数: |
1620 次 |
| 最近记录: |