2016-02-11 104 views
1

如何获取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]); 不会是我

+0

使用它在一个循环怎么样?根本没有使用它的API,更不用说循环了。而且,如果条目按该顺序插入,则您显示的索引值才是正确的。 – EJP

回答

1

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

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

使用的LinkedHashMap作为LinkedHashMap的字符串,测试>

+0

多数民众赞成在一个不错的主意! –

2

没有解决,没有办法只有从LinkedHashMap做到这一点没有O(n)的运行时间。你可以保留一个额外的Map<String, Integer>以保持元素的指数,但这是你唯一能做的。