Foundation框架: 8.OC中的集合类之三 - NSSet和NSMutableSet的基本认识
2015-02-05 20:35
447 查看
前面我们讲完过了NSArray和NSMutablArray了, 这次我们来讲讲第二个集合类,
NSSet和它的子类NSMutableSet, 其实NSSet和NSArray基本上是一样的, 唯一的不同点就是NSSet它是没有循序的, 所返回的对象是随机的,
下面让我们来看看吧~
例子:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSSet *s = [NSSet set];
NSSet *s1 = [NSSet setWithObjects:@"a", @"b", @"c", @"d", @"e", nil];
NSString *str = [s1 anyObject];
NSLog(@"s = %ld, s1 = %ld", s.count, s1.count);
NSLog(@"str = %@", str);
return 0;
}
打印出来的结果:
2015-02-05 20:39:14.211 7.NSSet[3833:303] s = 0, s1 = 5
2015-02-05 20:39:14.212 7.NSSet[3833:303] str = d
其实NSSet和NSArray的创建方法很像, 这是OC语法中的一个规律, 创建什么类的对象, 就以什么类名开头, 下面继续说NSMutableSet:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSMutableSet *s = [NSMutableSet set];
// 1.添加元素的方法
[s addObject:@"a"];
// 2.删除元素的方法
[s removeObject:@"a"];
return 0;
}
有些人会很细心的发现, 在删除元素的方法里会少了几个和NSArray一样的方法, 就只剩下两个方法, 其实这是没错的, 由于NSSet的特性, 它是随机返回的, 我们并不能知道它会返回哪个对象给我们, 所以这里的删除元素方法就缺少了几个和位置相关的.
总结:
NSSet和NSArray的对比:
1> 共同点
* 都是集合, 能存放多个OC对象
* 只能存放OC对象, 不能存放非OC对象类型(基本数据类型:int,
char, float等, 结构体, 枚举)
* 本身都不可变, 都有一个可变的子类
2> 不同点
* NSArray有顺序,
NSSet没有顺序.
好了, 这次就讲到这里, 下次我们继续~~
NSSet和它的子类NSMutableSet, 其实NSSet和NSArray基本上是一样的, 唯一的不同点就是NSSet它是没有循序的, 所返回的对象是随机的,
下面让我们来看看吧~
例子:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSSet *s = [NSSet set];
NSSet *s1 = [NSSet setWithObjects:@"a", @"b", @"c", @"d", @"e", nil];
NSString *str = [s1 anyObject];
NSLog(@"s = %ld, s1 = %ld", s.count, s1.count);
NSLog(@"str = %@", str);
return 0;
}
打印出来的结果:
2015-02-05 20:39:14.211 7.NSSet[3833:303] s = 0, s1 = 5
2015-02-05 20:39:14.212 7.NSSet[3833:303] str = d
其实NSSet和NSArray的创建方法很像, 这是OC语法中的一个规律, 创建什么类的对象, 就以什么类名开头, 下面继续说NSMutableSet:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSMutableSet *s = [NSMutableSet set];
// 1.添加元素的方法
[s addObject:@"a"];
// 2.删除元素的方法
[s removeObject:@"a"];
return 0;
}
有些人会很细心的发现, 在删除元素的方法里会少了几个和NSArray一样的方法, 就只剩下两个方法, 其实这是没错的, 由于NSSet的特性, 它是随机返回的, 我们并不能知道它会返回哪个对象给我们, 所以这里的删除元素方法就缺少了几个和位置相关的.
总结:
NSSet和NSArray的对比:
1> 共同点
* 都是集合, 能存放多个OC对象
* 只能存放OC对象, 不能存放非OC对象类型(基本数据类型:int,
char, float等, 结构体, 枚举)
* 本身都不可变, 都有一个可变的子类
2> 不同点
* NSArray有顺序,
NSSet没有顺序.
好了, 这次就讲到这里, 下次我们继续~~
相关文章推荐
- Foundation框架: 8.OC中的集合类之二 - NSMutableArray的基本认识
- 【IOS 开发学习总结-OC-30】★★OC之foundation 框架——集合(NSSet 与 NSMutableSet)
- Foundation框架: 9.OC中的集合类之四 - NSMutableDictionary的基本认识
- Foundation框架: 8.OC中的集合类之一 - NSArray的基本认识
- object c基础, 基本类型(NSString,char*NSDate,NSData),集合NSArray,NSMutableArray,NSDictionary,NSMutableDictionary,NSSet,NSMutableSet
- 21 Foundation框架之NSSet、NSMutableSet、NSCountedSet、NSOrderedSet、NSMutableOrderedSet
- iOS开发OC基础:OC集合NSSet、NSMutableSet以及NSCountedSet的基本方法的使用
- Foundation框架: 8.OC中的集合类之三 - NSDictionary的基本认识
- [Objective-C] 010_Foundation框架之NSSet与NSMutableSet
- Objective-c的Foundation中常用类5——集合中的NSSet、NSMutableSet
- 集合对象(NSSet,NSMutableSet,NSIndexSet)
- OC学习之道:OC对象,字典,集合的使用方法NSDictionary,NSMutableDictionary, NSSet,NSMutableSet,NSCountedSet
- 集合:NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet、NSMutableSet使用
- 黑马程序员---Foundation常用类之NSSet/NSMutableSet
- 【Foundation学习笔记】常用类--NSSet和NSMutableSet
- 黑马程序员-oc基础-集合NSSet,NSMutableSet
- Foundation 之 NSSet和NSMutableSet以及NSIndexSet和NSMutableIndexSet
- Ojbect-C2 5、NSSet和NSMutableSet集合的使用
- 集合: NSSet(不可变集合)和NSMutableSet(可变集合)