gem*_*der 111 arrays cocoa cocoa-touch objective-c ios
我在我的应用程序中多次使用NSSets,但我自己从未创建过.
Jam*_*ter 178
Apple的文档中的图像描述得非常好:

Array是一个有序的(在添加时维护订单)元素序列
[array addObject:@1];
[array addObject:@2];
[array addObject:@3];
[array addObject:@4];
[array addObject:@6];
[array addObject:@4];
[array addObject:@1];
[array addObject:@2];
[1, 2, 3, 4, 6, 4, 1, 2]
Run Code Online (Sandbox Code Playgroud)
Set是一个独特的(没有重复的),无序的元素列表
[set addObject:@1];
[set addObject:@2];
[set addObject:@3];
[set addObject:@4];
[set addObject:@6];
[set addObject:@4];
[set addObject:@1];
[set addObject:@2];
[1, 2, 6, 4, 3]
Run Code Online (Sandbox Code Playgroud)
Ole*_*ann 167
当集合中的项目顺序不重要时,集合可以更好地查找集合中的项目.
原因是一个集合使用哈希值来查找项目(如字典),而数组必须迭代其整个内容以查找特定对象.
woz*_*woz 65
最好的答案是这是Apple自己的文档.

主要区别在于NSArray有序集合,NSSet适用于无序集合.
有几篇文章讨论了两者之间的速度差异,就像这一篇.如果您正在迭代无序集合,那就NSSet太棒了.但是,在许多情况下,你需要做一些只能做的事情NSArray,所以你牺牲了这些能力的速度.
的NSSet
NSArray的
这就是真的!如果有帮助,请告诉我.
小智 5
NSArray *Arr;
NSSet *Nset;
Arr=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"2",@"1", nil];
Nset=[NSSet setWithObjects:@"1",@"2",@"3",@"3",@"5",@"5", nil];
NSLog(@"%@",Arr);
NSLog(@"%@",Nset);
Run Code Online (Sandbox Code Playgroud)
数组
2015-12-04 11:05:40.935 [598:15730](1,2,3,4,2,1)
集合
2015-12-04 11:05:43.362 [598:15730] {(3,1,2,5)}
| 归档时间: |
|
| 查看次数: |
53052 次 |
| 最近记录: |