【iOS开发】数组的去重(无序和有序)
来源:互联网 发布:java算法数据结构视频 编辑:程序博客网 时间:2024/04/28 20:31
一、 无序的去重
1.利用NSDictionary的AllKeys(AllValues)方法
可以将NSArray中的元素存入一个字典,然后利用AllKeys或者AllValues取得字典的所有键或值,这些键或值都是去重的。
代码:
NSArray *arr =@[@11,@22,@11]; NSMutableDictionary *dict = [NSMutableDictionarydictionary]; for (NSNumber *numberin arr) { [dict setObject:numberforKey:number]; } NSLog(@"%@",[dictallValues]);
输出结果为:
2016-03-09 17:52:46.421 test[9555:408408] ( 22, 11)
2.利用NSSet的AllObjects方法
这种方法更快,利用NSSet不会添加重复元素的特性。不过去重的数组没有进行排序,如果需要排序,可以使用NSSortDescriptor类。
代码:
NSArray *arr =@[@111,@222,@111]; NSSet *set = [NSSetsetWithArray:arr]; NSLog(@"%@",[setallObjects]);
输出结果为:
2016-03-09 17:55:13.081 test[9577:411377] ( 111, 222)
二、 有序的去重
很多时候可能会遇到需要去除NSArray重复的元素,用了很多方法。
最方便快捷的是NSSet.但是NSSet去重后有时候数组元素的顺序会打乱。于是换了另外一种方法如下:
代码:
NSArray *classArray =@[@1,@2,@1,@3,@3,@1]; NSMutableArray *categoryArray = [[NSMutableArray alloc] init]; for (unsigned i =0; i < [classArray count]; i++) { if ([categoryArray containsObject:[classArray objectAtIndex:i]] == NO) { [categoryArray addObject:[classArray objectAtIndex:i]]; } } NSLog(@"---%@",categoryArray);
输出结果为:
2016-03-09 17:59:12.554 test[9598:414513] ---( 1, 2, 3)
顺序为有序的.
0 0
- 【iOS开发】数组的去重(无序和有序)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- 有序数组和无序数组
- json_encode 二维有序数组和无序数组的区别
- 有序数组和无序数组的二分查找
- iOS数组的去重
- iOS开发 -- 数组去重+排序的方法
- 广播--的有序和无序
- iOS 数组去重
- iOS 数组去重
- ios ---数组去重
- iOS 数组去重
- iOS 数组去重
- 有序去重的问题
- 无序链表的去重问题
- 水平滚动
- sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
- iOS中制作微信摇一摇的图框雏形
- JavaSE_接口,接口中的修饰符
- lucene学习 内存索引库和文件索引库结合
- 【iOS开发】数组的去重(无序和有序)
- 关于jquery插件的那点事!
- iOS NSURLSession 详解
- Java网络编程
- overridePendingTransition
- netstat 查看连接数
- android 解决asset下面文件太大报错问题
- HBase-1.2.1之HRegionServer启动源码学习
- 使用jquery修改当前页面所在Iframe的相关属性