gpt4 book ai didi

objective-c - 将 NSMutableArray 与 NSArray 合并,过滤重复项

转载 作者:太空狗 更新时间:2023-10-30 03:31:19 34 4
gpt4 key购买 nike

我有两个数组,一个 NSMutableArray 和一个 NSArray。 NSMutableArray 是“存储”,它存储来自 NSArrays 源的结果。每 5 分钟,就会有一个新的 NSArray 进来,需要对数据进行过滤和排序。

按日期排序非常简单,所以我设法让 NSArray 按 NSDate 排序。没有必要对另一个数组进行排序,因为这只会让用户感到困惑。

我想做的是:NSArray 有很多不同的对象,它们都响应-[对象名称],返回一个 NSString。 NSArray 需要合并 NSMutableArray,只添加对象。

合并本身没有问题,但性能是。 NSMutableArray 最多可以包含 3000 个项目,而 NSArray 最多可以包含 250 个项目,尽管通常只有 5 或 6 个必须合并到 NSMutableArray 中。

所以,我的问题是:如何在 Objective-C 中合并两个数组,过滤重复项,而不迭代 (250*3000) 次?

汤姆

编辑以澄清一些事情
“重复”对象是对用户重复但对代码不重复的对象。他们有相同的名字,但相同的地址。

更多说明:@"value"!= @"value"//true

最佳答案

name 是存储在数组中的对象的属性吗?如果是这样,您可以使用相当简单的 NSPredicate 在将结果添加到可变数组之前过滤不可变数组。这是一个例子:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NONE name == %@.name", mutableArray];
resultsArray = [immutableArray filteredArrayUsingPredicate:predicate];
[mutableArray addObjectsFromArray:immutableArray];

关于objective-c - 将 NSMutableArray 与 NSArray 合并,过滤重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4454957/

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