答案 0 :(得分:7)
答案 1 :(得分:7)
这个测试应该证明它是如何工作的
Map m = new LinkedHashMap(16, 0.75f, true);
m.put(1, 1);
m.put(2, 2);
m.put(3, 3);
System.out.println(m);
m.get(2);
System.out.println(m);
Set keys = m.keySet(); //API: Returns a Set view of the keys contained in this map.
keys.iterator().next();
System.out.println(m);
输出
{1=1, 2=2, 3=3}
{1=1, 3=3, 2=2}
{1=1, 3=3, 2=2}
也就是说,访问条目2-2改变了迭代顺序,并且访问keySet视图上的第一个条目1-1没有
答案 2 :(得分:3)
如果我理解得很好,也许我不理解,集合视图是通过其抽象获得的Collection
,如entrySet,values和keySet。
当您使用特殊构造函数使对象按访问顺序排序时,这些集合中的操作不会影响您LinkedHashMap
内对象的访问顺序。