NSSet和排序方法、数组去重
NSSet
去掉数组中重复的数
NSSet方法
NSArray *arr = @[@11,@33,@44,@42,@22,@11,@44,@11];
NSSet *set = [NSSet setWithArray:arr];
//集合判断一个数组里面是否包含一个对象,速度最快,若重复很多次,应该考虑用集合
//NSOrderedSet
[set containsObject:@11];
arr = [set allObjects];
NSDictionary方法
NSArray *arr = @[@11,@33,@44,@42,@22,@11,@44,@11];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[arr enumerateObjectsUsingBlock:^(id_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
dict[obj] = @1;
}];
arr = [dict allKeys];
NSLog(@"%@",arr);
数组排序
NSArray *arr2 = @[@11,@33,@44,@42,@22,@11,@44,@11];
NSMutableArray *arr1 = arr2.mutableCopy;
for (int i = 0;
i < arr1.count;
i++) {
for (int j = 0;
j < arr1.count;
j++) {
if (arr1[i] > arr1[j]) {
[arr1 exchangeObjectAtIndex:i withObjectAtIndex:j];
}
}
}
冒泡排序
//冒泡排序
for (int i = 0;
i < arr1.count;
i++) {
for (int j = 0;
j < arr1.count - 1 - i;
j++) {
if (arr1[j] > arr1[j + 1]) {
[arr1 exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
}
}
}
【NSSet和排序方法、数组去重】sort方法排序(快排)
[arr1 sortUsingComparator:^NSComparisonResult(id_Nonnull obj1, id_Nonnull obj2) {
if (obj1 > obj2) {
//降
return NSOrderedDescending;
}else if(obj1 < obj2){
//升
return NSOrderedAscending;
}
else {
return NSOrderedSame;
}
}];
推荐阅读
- 投稿|2022年中盘点:悬疑、古偶和剧情片,谁是“降本增效”下的神作?
- Android零基础入门第43节(ListView优化和列表首尾使用)
- 人工智能|特斯拉新四化研究(电动化和自动化上一路领先,下一步是共享化)
- 百度造车和RoboTaxi利好自动驾驶(不,利好茅台)
- 投稿|稻盛和夫:成功不属于个人,利己主义是长远发展的大敌
- 关于HTTP和HTTPS的区别
- VSCode|VSCode 中前端代码规范和编码风格实践详解
- 剑指 Offer II 115. 重建序列 : 拓扑排序构造题
- 博文视点IT荐书吧|一本顶流著作和一次匠心翻译!《机器学习与资产定价》重磅上市
- stm32---外中断