我有以下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