【发布时间】:2016-05-10 13:34:33
【问题描述】:
我只是想检查我的数组中是否包含任何重复项。我在谷歌上搜索并看到了一些方法:
- 双 for 循环遍历数组并比较每个项目
- 创建一个字典来存储每个项目的出现次数
但是这些方法需要很多循环,我有点懒得只为这个功能编写大量代码。 xD。
于是我想到了这个创造性的方式:
let containsDuplicates = Set(array).count != array.count
但是,这种方法比其他两种方法快还是慢?我不确定,因为它似乎创建了一个我认为需要循环遍历数组的集合。而且我不知道访问count 是否也会遍历整个数组。
如果我在数组中最多只有 50 个项目,这是否重要?
【问题讨论】:
-
试一试,量一下时间……
-
试试什么?我不知道如何测量代码执行时间。 @MartinR 而且我也想知道why,不知道怎么找到答案。
-
这是我在“Swift measure execution time”中找到的第一个 Google 搜索结果:stackoverflow.com/questions/24755558/…。答案也取决于数组的内容,例如它包含多少个重复项。
-
这可能还取决于元素类型:比较两个数组元素的成本是多少?
标签: arrays swift duplicates