1

标题说明一切:

据我了解,文档中有一点含糊不清。首先,文档谈到了按插入顺序排列的 LinkedHashMap,并指出迭代顺序在插入已映射的项目时不会受到影响。

然后,引入了access-ordered LinkedHashMap,并坚持“仅仅一个get就是一种结构修改”,即影响迭代顺序。

但是,尚不清楚现有项目的“put()”是否是结构修改。

我希望答案是肯定的。

4

1 回答 1

3

这段简单的代码应该可以回答您的问题:

final Map<String, String> x = new LinkedHashMap<>(10, 0.75f, true);
x.put("a", "a");
x.put("b", "b");
System.out.println(x);
x.put("a", "a");
System.out.println(x);

印刷

{a=a, b=b}
{b=b, a=a}

解释:put在现有的key下,即使是相同的值,也是结构修改。

于 2012-11-09T09:54:04.487 回答