2015-10-13 61 views
-1

我有這樣的樹狀圖:的Java TreeMap的返回鍵位置

Map teamNameAndLeague = new TreeMap(); 

teamNameAndLeague.put("team1", "name1"); 
teamNameAndLeague.put("team2", "name2"); 
teamNameAndLeague.put("team3", "name3"); 

我如何可以搜索鍵和返回鍵實例的指標:

search for key: "team1" in teamNameAndLeague, Returns index: 1 

我有這樣的:

int indexWin = new ArrayList<String>(teamNameAndLeague.values()).indexOf("name2") + 1; 

That returns: 2 

它返回此密鑰的索引,但是用於搜索密鑰值。我怎麼能做出類似的東西,而不是尋找鑰匙

+0

它返回的索引基於關鍵...是不是搜索關鍵? – redFIVE

+0

你的索引是依賴於插入順序還是根據TreeMap?我不認爲在TreeMap中有任何索引 –

回答

0

爲什麼不做同樣的事情,但用你的key得到value

new ArrayList<String>(teamNameAndLeague.values()).indexOf(teamNameAndLeague.get("team2")) + 1 

這將告訴你插入的順序,但不會給你一個indexMap不使用index

0

TreeMap不使用索引;它是一棵樹,而不是一個線性序列。如果你想強制訂購,你可以這樣做。爲此,必須爲鍵提供一個比較器(如果需要,默認字符串比較器將執行的操作),將列表排序到數組中,然後對數組進行索引,就像您已經發布的數組一樣值。但請注意,這會忽略樹結構。請參閱http://java2novice.com/java-collections-and-util/treemap/basic-comparator/中的示例

另請注意頁面底部的鏈接列表:這些將引導您完成基本的TreeMap操作。

另一種方法是使用key的「set」對象,teamNameAndLeague.keySet;這也忽略了樹結構。