我試圖根據字典中的特定鍵取消NSDictionaries的NSArray。我看起來像這樣:根據特定鍵非NSDictionaries的NSArray
NSDictionary *person1 = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName", @"Smith", "lastName", @"7898", @"employeeID"];
NSDictionary *person2 = [NSDictionary dictionaryWithObjectsAndKeys:@"Eric", @"firstName", @"Johnson", "lastName", @"1718" @"employeeID"];
NSDictionary *person3 = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName", @"Smith", "lastName", @"1153", @"employeeID"];
NSMutableArray *personArray = [NSArray arrayWithObjects:person1, person2, person3, nil];
// insert some code to de-dupe personArray based SOLELY on the firstName and lastName keys
請注意,有兩名僱員具有相同名稱但ID不同。我想要做的只是返回一個只有person1和person2的新數組,因爲person3具有相同的數據 - 我只是不關心在這個特定問題中的「employeeID」值。
任何想法?謝謝!
-Matt
我很感謝您的快速響應!我認爲在這種情況下,這是行得通的,唯一的問題是,我忘記指出,我正在處理數千個所述人物對象。你的方法可行,但我不確定它是如何可擴展的。 – mag725 2010-10-21 17:06:20
我可能是錯的,但據我瞭解,NSDictionary大部分時間都是散列映射,分段插入時間爲O(1)。初始化字典的容量與唯一條目的預期數量成比例,以防止連續重新散列並對其進行測試。內存也不應該成爲問題,因爲你插入的內容實際上是一個參考。 如果您有很多條目,並且您不斷檢索並操作它們,Core Data可能會更好地滿足您的需求。 – sigsegv 2010-10-21 17:32:41