我认为这可能是一个简单的答案,但我想我会快速检查......
我们假设我在代码中的不同位置向数组添加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") }
这比我创建字典更重要吗?
var dictionary = [Int:Int]()
dictionary[7] = 7
if dictionary[7] != nil { print("There's a value for key 7")}
显然有这样的原因,你可能想要消除重复相同数字条目的可能性......但我也可以用Set
做到这一点..我' m主要是想知道dictionary[key]
vs array.contains(value)
感谢您的时间
答案 0 :(得分:8)
一般来说,searching
提供常量,即O(1),访问,这意味着Array
如果存在值并且更新它比使用Dictionary
更快,这取决于update table1 a
inner join table2 b
on a.id = b.id
set a.desc = b.desc
where a.desc is null
实施时可以是O(n)。如果这些是你需要优化的东西,那么var normalizedDate = new Date(Date.now()).toISOString();
是一个不错的选择。但是,由于字典强制使用键的唯一性,因此无法在同一个键下插入多个值。
根据这个问题,我建议你阅读Ray Wenderlich's Collection Data Structures,以便更全面地了解数据结构,而不是我在这里提供的。
答案 1 :(得分:2)