2016-02-11 54 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>以保持元素的指數,但這是你唯一能做的。