获取一个键的LinkedHashMap索引

时间:2016-02-11 21:27:11

标签: java hashmap linkedhashmap

如何在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]); 对我来说不会是一个解决方案

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

将LinkedHashMap用作LinkedHashMap字符串,测试&gt;