有没有办法在LinkedHashMap中使用put()
替换密钥而不会丢失最初插入密钥的顺序?
答案 0 :(得分:4)
如果您使用了LinkedHashMap,我认为没有内置方法来实现您的目标。您可能想要选择另一个(或设计自己的)数据结构。
如果必须在linkedhashmap上执行此操作,则可以创建新的LinkedHashMap,迭代旧的LinkedHashMap并放入新的LinkedHashMap,当目标条目到来时,创建具有不同键的新条目,将新条目放入地图。
答案 1 :(得分:3)
为同一个密钥设置不同的值时,不会丢失订单。
示例强>
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("foo", "bar");
map.put("blah", "baz");
System.out.println(map);
map.put("foo", "foo");
System.out.println(map);
<强>输出强>
{foo=bar, blah=baz}
{foo=foo, blah=baz}
修改强>
&#34;更换&#34;给定值的键意味着删除键值对,然后将新键与存储的值放在一起。
因此,使用LinkedHashMap
无法直接执行此操作,甚至可能不会继承和更改remove
和put
的行为。