注 1。“如果将键重新插入到地图中,插入顺序不会受到影响。”
注2。“提供了一个特殊的构造函数来创建链接的哈希映射,其迭代顺序是其条目最后被访问的顺序,从最近最少访问到最近访问(访问顺序)。”
询问:
重新插入(put
方法)是否修改了该指定条目对象的最近访问,或者它只是改变最近访问的get
方法?
如果accessOrder
是true
在构建LinkedHashMap 时,上面的“注1 ”语句是否矛盾并且影响插入顺序?
更新
按照下面的测试代码,put
和get
方法都改变了访问顺序。那么 Note 1 显然与accessOrder = true
LinkedHashMap 构造函数不正确。
public class Main
{
public static void main(String[] args) {
LinkedHashMap<Integer, String> map = new LinkedHashMap<>(16, .75f, true);
map.put(1, "A");
map.put(2, "B");
map.put(3, "C");
map.put(4, "D");
map.put(5, "E");
System.out.println(map);// Output: {1=A, 2=B, 3=C, 4=D, 5=E}
// get method changed access order
String dummy = map.get(2);
System.out.println(map); // Output: {1=A, 3=C, 4=D, 5=E, 2=B}
// put method changed access order
map.put(1, "Z");
System.out.println(map); // Output: {3=C, 4=D, 5=E, 2=B, 1=Z}
}
}
三国纷争
相关分类