获取键的 LinkedHashMap 索引

Get LinkedHashMap index of a key

如何获取 LinkedHashMap 中键的索引?

例如我得到这个:

index          key          value
0              "a"           10
1              "b"           20
2              "c"           30

现在我想得到键的索引"b"。在这种情况下是什么 1.

有没有运行时间为 O(n) 的方法? 我将在循环中使用它,例如 new ArrayList<String>(mapIndex.keySet()).indexOf(position_with_section_map[position]); 对我来说不是解决方案

不,如果 LinkedHashMap 没有 O(n) 的运行时间,就无法做到这一点。您可以保留一个额外的 Map<String, Integer> 来自己保留元素的索引,但这确实是您唯一可以做的事情。

添加到 Louis Wasserman 答案而不是创建新地图,您可以将索引和值移动到 Pojo 并将其保存为地图中的值。

class Test{
int index;
int value;
public int getIndex();
public int getValue();
}

使用LinkedHashMap作为LinkedHashMap String,Test>