I have 2 nsarray, with the same values but in different order.
NSArray * array1 = {0,1,2,3}
NSArray * array2 = {2,3,1,0}
I need a method to determinate if two arrays have the same values in a different order.
Kind of
-(BOOL) isSameValues:(NSArray*)array1 and:(NSArray*)array2;
You can use NSCountedSet
for that purpose:
- (BOOL)isSameValues:(NSArray*)array1 and:(NSArray*)array2
{
NSCountedSet *set1 = [NSCountedSet setWithArray:array1];
NSCountedSet *set2 = [NSCountedSet setWithArray:array2];
return [set1 isEqualToSet:set2];
}
NSCountedSet
is a collection of different objects, where each object has an associated counter with it. Therefore the result for
NSArray *array1 = @[@0,@1,@2,@3];
NSArray *array2 = @[@2,@3,@1,@0];
is YES
, but for
NSArray *array1 = @[@1,@1,@3,@3];
NSArray *array2 = @[@3,@3,@3,@1];
the result is NO
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With