swift 3 - 从另一个数组

时间:2016-12-09 22:55:49

标签: arrays swift3

我有一个包含Contact对象的数组。

然后我有另一个用户数组。

class Contact: NSObject {

    var name: String?
    var phoneNumber: String?
    var phoneNumberFormatted: String?

    init(name: String, phoneNumber: String?, phoneNumberFormatted: String) {
        self.name = name
        self.phoneNumber = phoneNumber
        self.phoneNumberFormatted = phoneNumberFormatted
    }
}


 class User: NSObject {

        var name: String?
    }

如果我的[Contact]中的用户名称匹配,我如何从[User]删除联系人对象?

我知道如何通过循环来实现它,但最有效的方法是什么?

1 个答案:

答案 0 :(得分:2)

对于非平凡数组大小执行此操作的最佳(计算效率最高)方法是从您需要重复搜索的数组中预先计算一个集合,并过滤您的其他数组,仅在它们不是时才保留元素在集合中找到。

这会利用O(1)的{​​{1}}查找效果。算法整体为Set

O(userPhoneNumbers.count + contacts.count)