如果我不僅需要快速搜索密鑰,而且還需要快速搜索,那該怎麼辦?換句話說,是否有像key-key這樣的結構而不是key-value?在Java中我可以有一個鍵 - 鍵映射(而不是鍵值)嗎?
8
A
回答
9
聽起來像你想bimap - 我會使用Guava如果我是你的實現;有一個BiMap
接口,以及各種實現,例如HashBiMap
和ImmutableBiMap
。
請注意,您通常從一個「邊」(K1到K2)查看BiMap
,並且只需撥打inverse()
即可獲得事物(K2到K1)的相反視圖。
5
幾家圖書館都有類似的東西。例如,Google Guava有一個BiMap
(雙向映射)。不幸的是,標準Java庫中沒有雙向映射。
0
爲了澄清,你有某種地圖與以下項:值對:
Map<String, String> map = new HashMap<String, String>();
map.put("foo", "Freddy");
map.put("bar", "Bobby");
然後,你會想要做map.get(「富」),並得到弗雷迪,或做map.get(「Freddy」)並獲得foo?
如果是這樣,檢查this post了。
相關問題
- 1. (Vim鍵映射)可以在Vim中映射'<' or '>'嗎?
- 2. 我可以在數據庫中只有外鍵而不是主鍵嗎?
- 3. 鍵值映射
- 4. 如何在java中刪除java映射值(不是鍵值)?
- 5. Java:鍵盤映射值
- 6. Windows鍵可以映射到Vim嗎?
- 7. AutoHotKey可以切換鍵盤映射嗎?
- 8. 映射按鍵在JPA:主鍵是一個外鍵
- 9. 在一個鍵值對中,一個鍵可以是另一個k-v對嗎?
- 10. const_cast映射的鍵值有效嗎?
- 11. 我可以在Vim中映射Alt鍵嗎?
- 12. 我可以在IntelliJ中更改調試器的鍵映射嗎?
- 13. 你可以重新映射特定鍵盤的鍵嗎?
- 14. 是否可以使用鍵盤映射
- 15. 是否可以在java中使用數組作爲映射鍵?
- 16. Hadoop映射器可以在輸出中生成多個鍵嗎?
- 17. 鍵映射到多個值
- 18. PigLatin映射鍵值
- 19. 將兩個外鍵映射到一個主鍵(XML映射)
- 20. 在Clojure中,我可以調用一個需要映射鍵的函數嗎?
- 21. 如何修改映射中鍵值對的值,但我不知道映射中是否存在該鍵?
- 22. 按鍵值搜索不可變映射
- 23. 映射的外鍵不是一個主鍵
- 24. std ::映射一個鍵,兩個值
- 25. 我可以有一個C++映射,其中多個鍵引用值而不使用指針?
- 26. 映射作爲外鍵而不是主鍵在sql server中的另一個關鍵
- 27. HashMap中的鍵 - 值映射
- 28. 我們可以在同一列有多個鍵值嗎?
- 29. Java - 在一個映射中交換值和鍵?
- 30. 我可以在iOS系統鍵盤上添加一個鍵嗎?
請注意,番石榴的'BiMap'基本上是兩個'Map'放在一起並保持對稱,所以如果你不想添加額外的庫,你可以自己做。 – Viruzzo 2012-01-16 15:44:29