我只想要一个与Dictionary
类似的数据结构,但不仅可以使用键访问值,还可以使用值访问键。
所以它会是这样的:
let dict: ReversibleDictionary<String, String> =
["1" : "one", "2" : "two", "3" : "three"]
dict.valueFromKey("1") // "one"
dict.keyFromValue("two") // "2"
是否有内置的快速内容?
如果没有,我怎么能自己创造这样的东西?
我尝试使用2 NSMutableOrderedSet
创建一个并使用线性搜索来查找相应的值。但我认为使用线性搜索效率太低,这是O(n)复杂度。访问字典应该是O(1)复杂性,对吗?
答案 0 :(得分:6)
不,没有内置的数据结构可以做到这一点。
但您可以轻松创建自己的数据结构,其中包含两个词典。当你添加到这个&#34; ReversableDictionary&#34;你只需要确保也添加第二个字典的反转。
然后在内部,您可以通过实施自己的dict.valueFromKey()
和dict.keyFromValue()
方法
查找应该是O(1),代价是使用两倍的存储空间。