我有以下2个数组。数组A具有10个ID,另一个数组B具有300个ID和所有相应的数据。从另一个阵列查询数组
我想要检索的B用的ID,其在阵列A中注明,所有数据
我可以只循环在数组A的每个条目数组B中的所有条目,但是这看起来有点重为了这么简单的任务。这种情况下最好的解决方案是什么?
Thnx!
我有以下2个数组。数组A具有10个ID,另一个数组B具有300个ID和所有相应的数据。从另一个阵列查询数组
我想要检索的B用的ID,其在阵列A中注明,所有数据
我可以只循环在数组A的每个条目数组B中的所有条目,但是这看起来有点重为了这么简单的任务。这种情况下最好的解决方案是什么?
Thnx!
可能use a predicate(a,b是你的阵列):
NSPredicate* filter = [NSPredicate predicateWithFormat: @"self IN %@", a];
NSArray* result = [b filteredArrayUsingPredicate: filter];
尽管如此,如果在你的数组对象是像串简单的事情,它可能只工作。
我不明白你将如何去做,否则,如果你正在使用数组。访问正确元素的唯一方法是循环访问数组。
如果你不需要一个有序数组,你可以切换到一个哈希表(例如NSSet),它具有更快的查找时间(对O(1)的强偏向)。否则,您必须遍历整个数组并检查其所有成员。
当您填充数组B时,您可以改为使其成为dictionary
。假设ids
为unique
,那么您可以从数组B中获得数组A中键的对象的值。这将避免循环并且与哈希表等同。
返回的值将具有特定unique
id的相应数据。
非常好,这就是要找的东西 – Jos