gpt4 book ai didi

swift - 在不使用 for 循环的情况下高效地在 iOS 中快速相交对象数组

转载 作者:行者123 更新时间:2023-11-28 11:45:21 24 4
gpt4 key购买 nike

我想将包含“People”对象的两个数组相交,每个数组的数组大小可能超过 10000,我想使用对象的“id”相交而不使用 for 循环。我已经使用循环我的解决方案但速度很慢。一些 People 对象可以在两个数组中具有相同的“id”,而一些对象可以具有不同的“id”。

下面是我的代码示例

示例:

class People {

var id:Int!

var name:String!

}

let object1 = People(10, John)

let object2 = People(5, Rocky)

let array1 = [object1, object2, .... , object10000]

let array2 = [objectA1, objectA2, .... , objectA10000]

最佳答案

您可以使用 PeopleIds 创建 Set 并使用 Object Id 创建 Set,如下所示:

let peoples = ...
let objects = ...

let peoplesIds = peoples.map { $0.id }
let objectsIds = objects.map { $0.id }

let peoplesIdsSet = Set(peoplesIds)
let objectsIdsSet= Set(objectsIds)

let intersectionsIds = Array(peoplesIdsSet.intersection(objectsIdsSet))

另外我建议你把它放在后台线程中工作,像这样:

DispatchQueue.global(qos: .background).async {

findIntersecionsIds()

DispatchQueue.main.async {
// done
}
}

关于swift - 在不使用 for 循环的情况下高效地在 iOS 中快速相交对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52702969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com