集合
集合在xcode中用NSSet来定义
1.集合的特性:
(1).集合内的元素在输出时是没有顺序的
NSSet *set =[NSSet setWithObjects:@"1",@"2",@"3",@"4",@"2",@"5", nil];
NSLog(@"%@",set);
2015-07-23 14:52:59.992
结果 : OC07_NSDate[1125:83494] {( 3, 1, 4, 2' 5 )}
从以上的结果可以看出集合的另一个特性:
(2).集合不能有重复的对象:也就是说集合中如果有两个一样的元素,在输出是指数出其中的一个.
(3).集合中的元素必须是对象类型(在基本数据类型中有讲到把结构体类型和指针类型转变成对象类型)
2.set.count来输出集合的长度:
NSSet *set =[NSSet setWithObjects:@"1",@"2",@"3",@"4",@"2",@"5", nil];
NSLog(@"%@",set);
NSLog(@"%ld", set.count);
结果:2015-07-23 14:55:19.319 OC07_NSDate[1135:84327] 5
从这里的结果也能看出来,集合中元素是不可以重复出现的,如果重复出现,系统是不会记录的.
3.anyObject :返回集合中任意一个元素(但不是随机的,是输出元素中最容易得到的元素)(如果不明白请留言)
NSSet *set =[NSSet setWithObjects:@"1",@"2",@"3",@"4",@"2",@"5", nil];
NSLog(@"%@",[set anyObject]);
结果:2015-07-23 14:56:42.900 OC07_NSDate[1194:84987] 3
4.containsObject:是否包含这个元素(BOOL类型)
NSSet *set =[NSSet setWithObjects:@"1",@"2",@"3",@"4",@"2",@"5", nil];
NSLog(@"%d",[set containsObject:@"2"]);
2015-07-24 20:01:23.863 OC07_NSDate[1432:91305] 1
可变集合
NSMutableSet:可变集合
创建一个可变集合
`NSMutableSet *set =[NSMutableSet setWithObjects:@"1",@"2",@"3",@"4",@"2",@"5", nil];`
1.在可变集合中添加元素
NSMutableSet *set =[NSMutableSet setWithObjects:@"1",@"2",@"3",@"4",@"2",@"5", nil];
[set addObject:@"7"];
NSLog(@"%@",set);
2015-07-24 20:09:53.770
结果 :OC07_NSDate[1459:94297] {(
3,
1,
4,
2,
7,
5)}
2.在可变集合中删除元素
NSMutableSet *set =[NSMutableSet setWithObjects:@"1",@"2",@"3",@"4",@"2",@"5", nil];
[set removeObject:@"5"];
NSLog(@"%@",set);
2015-07-24 20:11:16.216
结果:OC07_NSDate[1467:94873] {(
3,
1,
4,
2)}
3.用forin的方法可以对可变集合进行遍历
NSMutableSet *set =[NSMutableSet setWithObjects:@"1",@"2",@"3",@"4",@"2",@"5", nil];
for (NSString *str in set) {
NSLog(@"%@",str);
}
结果: 2015-07-24 20:15:53.783 OC07_NSDate[1477:96673] 3
2015-07-24 20:15:53.784 OC07_NSDate[1477:96673] 1
2015-07-24 20:15:53.784 OC07_NSDate[1477:96673] 4
2015-07-24 20:15:53.784 OC07_NSDate[1477:96673] 2
2015-07-24 20:15:53.784 OC07_NSDate[1477:96673] 5