比较两个数组?

比较两个数组?

问题描述:

我想用以下设置比较两个数组,但不知道如何使用代码。比较两个数组?

有一个数组arrayOne,与另一个数组arrayTwo比较。

一旦找到两个数组的差异,将这些差异添加到arrayOne并从arrayTwo中删除所有内容。

这怎么办?

如果ARRAY1具有唯一值:

NSArray *[email protected][@"A",@"B",@"C",@"D"]; 
NSArray *[email protected][@"A",@"E",@"C"]; 

NSMutableOrderedSet *set1=[[NSMutableOrderedSet alloc]initWithArray:array1]; 
NSMutableOrderedSet *set2=[[NSMutableOrderedSet alloc]initWithArray:array2]; 
[set1 unionOrderedSet:set2]; 

array1=[set1 array]; 
[email protected][]; 

NSLog(@"array1: %@, array2: %@",array1,array2); 

输出:

ARRAY1:( A, B, C, d, ë ) 数组2: ( )

如果ARRAY1不具有唯一值:

NSMutableArray *unionArray=[NSMutableArray arrayWithArray:array1]; 
for (NSString *element in array2) { //compared only for string, if it is some other object need to compare them. 
    if (![array1 containsObject:element]) { 
     unionArray[unionArray.count]=element; 
    } 
} 
array1=unionArray; 
[email protected][]; 
NSLog(@"array1: %@, array2: %@",array1,array2); 

输出:

ARRAY1:( A, B, C, d, A, È ),array2:()

+0

这将适用于'array1'的每个元素都是唯一的条件。尽管维持秩序尽管巧妙。 – 2013-03-25 03:17:21

+0

@CarlVeazey:已更新(已排序或未排序)。 – 2013-03-25 03:24:48

+0

@Vishal:那么为什么我应该在那里保存一个;) – 2013-03-25 03:39:39

试试这个。希望这对你有帮助。

NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"One", @"Two", @"Three", nil]; 

NSMutableArray *array2 = [NSMutableArray arrayWithObjects:@"Two", @"Four", @"One", nil]; 

NSMutableArray *intermediate = [NSMutableArray arrayWithArray:array2]; 

[intermediate removeObjectsInArray:array1]; 

for(int i = 0; i < [intermediate count]; i++) 
{ 
    [array1 addObject:[intermediate objectAtIndex:i]]; 
} 
+0

OutPut是:一,二,三,三.....是否正确? – TheTiger 2013-03-25 05:03:26

+0

对不起我的错误。我编辑答案。它的输出是:一,二,三,四。 – Ayaz 2013-03-28 11:38:11