- 第一种:冒泡排序,然后挨个挨个比较,这个没什么可说的,关键是麻烦,而且时间复杂度也挺大的,所以博主就不给讲了。
- 第二种:利用数组排序。
-
NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];
//数组去重方法---方法1
//建立一个新的的可变数组,数组长度为0
NSMutableArray *newArray = [NSMutableArray array];
//遍历array,然后判断新数组中是否包含该元素,如果没有,则添加。
for (NSString *string in array) {
if (![newArray containsObject:string]) {
[newArray addObject:string];
}
}
//输出新数组中的元素
for (NSString *string in newArray) {
NSLog(@"%@",string);
}
- 第三种:字典排序
-
NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];
//字符串去重方法二
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
//根据字典的key值是唯一的,来写入数组
for (NSNumber *number in array) {
//把number拼接成字符串
[dict setValue:number forKey:[NSString stringWithFormat:@"%@",number]];
}
NSLog(@"%@",[dict allValues]);
- 第四种:NSSet排序-根据NSSet是无序的,他可以保证数据的唯一性,插入相同的数据不会有什么效果,博主建议大家面试可以用NSSet,方便快捷,不会偷懒的程序员不是好程序员。。
NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];
//第三种去重方法NSSet
NSSet *set = [[NSSet alloc]initWithArray:array];
NSLog(@"%@",[set allObjects]);
- NSOrderedSet -- 有序排列--面试要是要求有序排列就用这个,没要求就用上面那个NSSet
NSArray *array = @[@"小玉",@"小小鱼",@"小玉"];
//数组有序排列
NSOrderedSet *orderSet = [NSOrderedSet orderedSetWithArray:array];
NSLog(@"%@",orderSet.array);