Mag*_*goo 7 arrays performance dictionary swift
我想这可能是一个简单的答案,但我想我会快速检查......
假设我Ints
在我的代码中的各个点添加一个数组,然后我想找到一个数组Int
在将来是否包含某个数组.
var array = [Int]()
array.append(2)
array.append(4)
array.append(5)
array.append(7)
if array.contains(7) { print("There's a 7 alright") }
Run Code Online (Sandbox Code Playgroud)
这比我创建字典更重要吗?
var dictionary = [Int:Int]()
dictionary[7] = 7
if dictionary[7] != nil { print("There's a value for key 7")}
Run Code Online (Sandbox Code Playgroud)
显然有这样的原因,你可能想要消除相同数字的重复条目的可能性......但我也可以用Set
... 来做...我主要只是想知道dictionary[key]
vs 的性能array.contains(value)
谢谢你的时间
一般来说,Dictionaries
提供常量,即O(1)访问,这意味着searching
如果存在值并且更新它比使用a更快Array
,这取决于实现可以是O(n).如果这些是你需要优化的东西,那么a Dictionary
是一个不错的选择.但是,由于字典强制使用键的唯一性,因此无法在同一个键下插入多个值.
根据这个问题,我建议您阅读Ray Wenderlich的Collection Data Structures,以便更全面地了解数据结构,而不是在这里提供.