比较两个数组?
问题描述:
我想用以下设置比较两个数组,但不知道如何使用代码。比较两个数组?
有一个数组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:()
答
试试这个。希望这对你有帮助。
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]];
}
这将适用于'array1'的每个元素都是唯一的条件。尽管维持秩序尽管巧妙。 – 2013-03-25 03:17:21
@CarlVeazey:已更新(已排序或未排序)。 – 2013-03-25 03:24:48
@Vishal:那么为什么我应该在那里保存一个;) – 2013-03-25 03:39:39