【发布时间】:2023-03-07 09:56:01
【问题描述】:
我有 2000 个联系人,我想查找重复项,过滤器需要 1 分钟才能找到重复项。
let duplicateArray = contacts.filter { value in
contacts.filter({
$0.phoneNumbers.first?.value.value(forKey: "stringValue") as?
String ?? "" == value.phoneNumbers.first?.value.value(forKey:
"stringValue") as? String ?? ""
}).count > 1
}
【问题讨论】:
-
您可以使用
Set。您需要为您的自定义类确认Equatable协议。 -
我想获取两个重复的数字,例如:let array = [1,2,3,3] 所以输出必须是 [3,3]
-
我建议使用 Core Data 并将您的联系人保存在数据库中。搜索和排序非常快。
-
@DavidSteppenbeckPhD 我使用过 CoreData,但添加 2000 个数据需要 45 秒