NSArray和NSSet对比

NSArray和NSSet都是用于存储对象的集合;NSSet、NSMutableSet声明的对象,是无序的集合,在内存中存储方式是不连续的;而NSArray、NSMutableArray声明的对象,是有序集合,在内存中的存储位置也是连续的。

NSSet
NSSet *set = [NSSet setWithObjects:@"1", @"2", @"3", @"4", @"5", @"6",@"7",@"8", nil];
NSLog(@"set:%@", set);
打印结果:
set:{(7, 3,8,4,5,1,6, 2)}
NSMutableSet
NSMutableSet *mutableSet = [NSMutableSet setWithObjects:@"1", @"2", @"3", @"4", @"5", @"6",@"7",@"8", nil];
[mutableSet addObject:@"9"];
NSLog(@"mutableSet:%@", mutableSet);
打印结果:
mutableSet:{(7,3,8,4,9,5,1,6,2)}
NSArray
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6",@"7",@"8", nil];
NSLog(@"array:%@", array);
打印结果:
array:(1,2,3,4,5,6,7,8)
NSMutableArray
NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6",@"7",@"8", nil];
[mutableArray addObject:@"9"];
NSLog(@"mutableArray:%@", mutableArray);
打印结果:
mutableArray:(1,2,3,4,5,6,7,8,9)

NSSet和NSArray的区别,在搜索一个单元素时NSSet比NSArray的效率高,主要是因为NSSet用到了哈希算法(hash)
同时NSSet中是数据无重复集合,而NSArray中数据是可以重复的

NSSet
NSSet *set = [NSSet setWithObjects:@"1", @"2", @"3", @"4", @"5", @"6",@"7",@"8",@"1",@"2", @"3", @"4", nil];
 NSLog(@"set:%@", set);
打印结果:
set:{(2,3,4,5,6,7,8,1)}
NSArray
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6",@"7",@"8",@"1", @"2", @"3", @"4", nil];
NSLog(@"array:%@", array);
打印结果:
array:(1,2,3,4,5,6,7,8,1,2,3,4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值