示例: NSMutable * Array1包含1,2。 NSMutable * Array2包含2,1。如何檢查兩個NSMutableArray具有相同的整數而不考慮順序
當我們比較這兩個Array時,上面的條件應該返回True。請幫助我這樣做。謝謝。
示例: NSMutable * Array1包含1,2。 NSMutable * Array2包含2,1。如何檢查兩個NSMutableArray具有相同的整數而不考慮順序
當我們比較這兩個Array時,上面的條件應該返回True。請幫助我這樣做。謝謝。
首先排序都排列在升序這樣
NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: YES];
[array1 sortUsingDescriptors:[NSArray arrayWithObject: sortOrder]];
[array2 sortUsingDescriptors:[NSArray arrayWithObject: sortOrder]];
,然後只需陣列的比較結果爲
return ([array1 isEqualToArray:array2]);
你可以寫類似:
BOOL areEqual = array1.count == array2.count;
if (areEqual) {
NSMutableArray *array3 = [NSMutableArray arrayWithArray:array2];
for (NSNumber *number in array1) {
[array3 removeObject:number];
}
if (array3.count > 0) {
areEqual = NO;
}
}
試試這個:
這裏我返回BOOL,並打印爲1(是),0(否)。如果您想返回True和False,請通過comparyArray:withArray:method中的if-else重新執行。
- (BOOL)compareArray:(NSArray *)first withArray:(NSArray *)second{
first=[first sortedArrayUsingSelector:@selector(compare:)];
second=[second sortedArrayUsingSelector:@selector(compare:)];
return [first isEqualToArray:second];
}
- (void)anyMethod{
NSArray *[email protected][@1,@2,@3];
NSArray *[email protected][@3,@1,@21];
NSLog(@"Compare result is %d",[self compareArray:arr1 withArray:arr2]);
}
如果您可以假設重複被刪除(通過NSArray
>NSSet
),那麼陣列可以比較如下:
BOOL equal = [[NSSet setWithArray:array1] isEqualToSet:[NSSet setWithArray:array2]];
兼顧您的數組的大小了。
數組將包含對象,並且具有相同值「country」的兩個對象不能相同!是亞洲* a = @「國家」和歐洲* e = @「國家」。這裏不能相同。所以拿這個比較問題。如果你只存儲整數,那麼它很好。 –