从另一个数组查询数组

时间:2011-07-25 12:34:11

标签: iphone objective-c ios nsarray

我有以下2个数组。阵列A,即10个id,另一个阵列,阵列B,300个id,包含所有相应的数据。

我想从ID中检索B中的所有数据,这些数据在数组A中说明。

我可以在数组A中的每个条目上循环数组B中的所有条目,但对于这样简单的任务,这看起来有点沉重。在这种情况下,最好的解决方案是什么?

日Thnx!

4 个答案:

答案 0 :(得分:2)

如果您不需要有序数组,则可以切换到哈希表(例如NSSet),该哈希表具有更快的查找时间(对O(1)的强偏差)。否则你必须遍历整个数组并检查其所有成员。

答案 1 :(得分:1)

当您填充数组B时,您可以将其设为dictionary。假设idsunique,则可以从数组B获取数组A中键的对象值。这将避免循环,并且等同于哈希表。

然后,返回的值将包含特定unique id。

的相应数据

答案 2 :(得分:1)

可能use a predicate(a,b是你的数组):

NSPredicate* filter = [NSPredicate predicateWithFormat: @"self IN %@", a];
NSArray* result = [b filteredArrayUsingPredicate: filter];

虽然,它可能只有在数组中的对象是字符串之类的简单事物时才有效。

答案 3 :(得分:0)

如果你使用数组,我不会看你怎么做。访问正确元素的唯一方法是循环遍历数组。