2011-05-11 85 views
1

我想比較mutablearray對象的條件是...NSMutable數組對象比較

array1 = 1,2,3,4; array2 = 2,1,4,3,6,7;

比較這兩個數組對象&如果對象已經在數組中,則不添加,否則添加在數組3中。

所有的陣列NSMutable陣列

請幫助

+0

所以你正在嘗試做出不在兩個數組中的數字的第三個數組?你能排序數組嗎? – drewag 2011-05-11 12:38:38

回答

1

最簡單的方法是使用sets

NSMutableSet *set = [NSMutableSet setWithArray:array1]; 
[set addObjectsFromArray:array2]; 

NSArray *array = [set allObjects]; 

array會給沒有重複合併的第三陣列。

1
for (int i = 0; i < [array1 count]; i++) 
{ 
    BOOL addThisNumber = YES; 
    for (int j = 0; j < [array2 count]; j++) 
    { 
     int first = [array1 objectAtIndex:i]; 
     int second = [array2 objectAtIndex:j]; 
     if ([first compare:second] == NSOrderedSame) 
     { 
      addThisNumber = NO; 
     } 
    } 

    if (addThisNumber) 
    { 
     [array3 addObject:first]; 
    } 
} 

我通常做的是檢查對於所述第一陣列它是否所述第二陣列中的發生在每個對象。最後,如果以前未找到該對象,請添加該對象。

編輯:賈利亞的方法工作得更快,然後我的答案,並使用像7KV7的答案是適當的方式來使用它。