我有以下2个数组。阵列A,即10个id,另一个阵列,阵列B,300个id,包含所有相应的数据。
我想从ID中检索B中的所有数据,这些数据在数组A中说明。
我可以在数组A中的每个条目上循环数组B中的所有条目,但对于这样简单的任务,这看起来有点沉重。在这种情况下,最好的解决方案是什么?
日Thnx!
答案 0 :(得分:2)
如果您不需要有序数组,则可以切换到哈希表(例如NSSet),该哈希表具有更快的查找时间(对O(1)的强偏差)。否则你必须遍历整个数组并检查其所有成员。
答案 1 :(得分:1)
当您填充数组B时,您可以将其设为dictionary
。假设ids
为unique
,则可以从数组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)
如果你使用数组,我不会看你怎么做。访问正确元素的唯一方法是循环遍历数组。