iOS去除数组中重复数据的几种方法
程序员文章站
2022-06-11 14:42:11
...
第一种:利用NSDictionary的AllKeys(AllValues)方法
NSArray *dataArray = @[@1, @2, @3, @4, @1, @2, @5, @6, @7, @8, @9, @1, @3];
NSMutableDictionary *dic = [[NSMutableDictionary alloc]initWithCapacity:0];
for(NSString *str in dataArray)
{
[dic setValue:str forKey:str];
}
NSLog(@"DIC %@",[dic allKeys]);
打印结果:
DIC (
9,
5,
1,
6,
2,
7,
3,
8,
4
)
第二种方法:利用NSSet的AllObjects方法
NSArray *dataArray = @[@1, @2, @3, @4, @1, @2, @5, @6, @7, @8, @9, @1, @3];
NSSet *set = [NSSet setWithArray:dataArray];
NSLog(@"SET = %@",[set allObjects]);
SET = (
9,
7,
5,
3,
1,
8,
6,
4,
2
)
第三种方法,利用数组的containsObject来去除
NSArray *dataArray = @[@1, @2, @3, @4, @1, @2, @5, @6, @7, @8, @9, @1, @3];
NSMutableArray *listAry = [[NSMutableArray alloc]init];
for (NSString *str in dataArray) {
if (![listAry containsObject:str]) {
[listAry addObject:str];
}
}
NSLog(@"CONTAINS %@",listAry);
打印结果:
CONTAINS (
1,
2,
3,
4,
5,
6,
7,
8,
9
)
第四种方法:利用keyValue的方式(自己不是太明白)
NSArray *dataArray = @[@1, @2, @3, @4, @1, @2, @5, @6, @7, @8, @9, @1, @3];
NSArray *array1 = [dataArray valueForKeyPath:@"@distinctUnionOfObjects.self"];
NSLog(@"DISTINC %@",array1);
打印结果
DISTINC (
9,
7,
5,
3,
1,
8,
6,
4,
2
)
第五种 : NSOrderedSet去除
NSArray *dataArray = @[@1, @2, @3, @4, @1, @2, @5, @6, @7, @8, @9, @1, @3];
NSOrderedSet *orderSet = [NSOrderedSet orderedSetWithArray:dataArray];
NSArray *newArray = orderSet.array;
NSLog(@"ORDERSET %@",newArray);
打印结果
ORDERSET (
1,
2,
3,
4,
5,
6,
7,
8,
9
)
上一篇: linux服务之nginx-随笔-2(nginx配置站点的三种方式)
下一篇: Unity(预设体)