2010-07-27 24 views
0

所以,這可能是一個愚蠢的問題,但我有唯一ID映射到唯一值。有時候我想要某個ID的值,有時我想知道某個值的ID。我搜索的不止是我修改集合。我想知道是否有一個特殊的數據結構在這裏是有意義的,或者如果我應該維護集合的兩個副本(這從來不是超大的) - 一個是由ID鍵控的,另一個是按值鍵控的。當key和value同等「重要」時的數據結構

謝謝!

回答

1

維護兩個副本的集合是規範的解決方案。

注意,兩個方向上可使用不同的集合類型合適的話(具有不同的散列函數,哈希表和平衡樹等例如哈希表)。

1

類似Google的BiMap

+1

來到這裏發表這個。 'BiMap map = new HashBiMap (); map.put(1, 「你好」);整數id = map.inverse()。get(「Hello」);'。但實際上實際上實際上是在每個put()上維護2個HashMaps。 – Strelok 2010-07-27 01:40:00

相關問題