如何在LinkedHashMap中的特定索引/位置添加元素?

2022-08-31 16:26:27

我有一个有序的LinkedHashMap,我想在特定索引处添加元素,比如在地图的第一个地方或最后一个地方。如何在LinkedHashMap中特定位置添加元素?

即使我可以在LinkedHashMap中的FIRST或LAST位置添加一个元素也会有所帮助!


答案 1

您可以将此元素添加到 1。或最后一个位置:

添加到最后一个位置 ►您只需要从地图中删除以前的条目,如下所示:

map.remove(key);
map.put(key,value);

添加到第一位 ►这有点复杂,你需要克隆地图,清除它,把1。值,然后将新地图放到它上面,如下所示:

我正在使用具有字符串键和组(我的自定义类)值的映射:

LinkedHashMap<String, Group> newMap=(LinkedHashMap<String, Group>) map.clone();
map.clear();
map.put(key, value);
map.putAll(newMap);

如您所见,使用这些方法,您可以在地图的开头和结尾添加无限量的内容。


答案 2

您无法更改顺序。它是(默认情况下)或与此构造函数:insert-orderaccess-order

public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)

  • 构造一个具有指定初始容量、负载因子和排序模式的空 LinkedHashMap 实例。

  • 参数:初始容量 - 初始容量负载因子因子访问顺序 - 排序模式 - 访问顺序为 true,插入顺序为 false

  • 抛出:非法参数异常 - 如果初始容量为负或负载因子为非正数

参见:LinkedHashMap