Objective-C NSSet&NSMutableSet以及CountedSet

NSSet说实话,对这个类的应用,还不知道到底什么时候会用到,先过一遍脑子吧,以后有需要用到的时候,不至于陌生!

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])

{

@autoreleasepool {

//创建4个NSNumber对象

NSNumber *obj1 = [NSNumber numberWithInt:10];

NSNumber *obj2 = [NSNumber numberWithInt:15];

NSNumber *obj3 = [NSNumber numberWithFloat:10.5];

NSNumber *obj4 = [NSNumber numberWithChar:‘b‘];

//NSSet 初始化方法:initWithObjects:后面需要填写对象,每个对象用,号隔开,常用的有两个anyObject 和containsObject

NSSet *aSet = [[NSSet alloc] initWithObjects:obj1,obj2,obj3,obj4,obj1, nil];//集合不允许重复,多的obj1写进入也不会存入的.

//获取元素个数方法

NSInteger count = [aSet count];

NSLog(@"%ld",count);

//获取对象方法

NSLog(@"====获取对象方法====");

NSArray *array = [aSet allObjects];

NSLog(@"%@ %@",array,aSet);

//obj4中的b不是直接打印b,而是打印数值的.

//anyObject采用的是便利取值法

NSLog(@"============");

NSNumber *number = [aSet anyObject];

NSLog(@"%@",number);

//便利 所有的NSNumber的对象

for (NSNumber *num in aSet) {

NSLog(@"%@",num);

}

//判断集合中是否包含某个对象

BOOL isContain = [aSet containsObject:@"aa"];

if (isContain) {

NSLog(@"包含");

}else

{

NSLog(@"不包含");

}

#pragma mark - NSMutableSet

NSMutableSet *bSet = [[NSMutableSet alloc] initWithObjects:obj1,obj2, nil];

//添加 方法

[bSet addObject:obj3];

[bSet addObject:obj4];

[bSet addObject:[NSNumber numberWithInt:100]];

NSLog(@"%@",bSet);

//删除 某个

[bSet removeObject:[NSNumber numberWithInt:100]];

NSLog(@"%@",bSet);

//删除 全部

[bSet removeAllObjects];

NSLog(@"都删除了 %@",bSet);

#pragma mark - NSCountedSet

NSLog(@"======NSCountedSet=======");

//NSCountedSet 子类是扩充原有类的方法之一

NSCountedSet *cSet = [[NSCountedSet alloc] initWithObjects:obj1,obj1,obj1, nil];

//获取个数 CountForObject

NSInteger count1 = [cSet countForObject:obj1];

NSLog(@"%ld",count1);

//在NSSet方法中我们提到,重复添加的对象是不存储的,子类的NSCountedSet 是可以弥补NSSet的不足,可以记录对象重复出现的次数

}

return 0;

}

时间: 2024-10-24 16:00:16

Objective-C NSSet&NSMutableSet以及CountedSet的相关文章

Objective-C之集合对象(NSSet,NSMutableSet,NSIndexSet)

NSArray:有序的集合,NSSet:无序的集合,散列存储. 但是NSSet保证数据的唯一性.当插入相同的数据时,不会有任何效果.从内部实现来说是hash表.NSMutableSet是NSSet的子类,是NSSet的可变形式. NSSet.NSMutableSet NSSet的使用[NSSet setWithSet:(NSSet *)set]; 用另外一个set对象构造[NSSet setWithArray:(NSArray *)array];用数组构造[NSSet setWithObject

NSSet NSMutableSet的简单使用

//创建一个带多个参数的 NSSet *set=[NSSet setWithObjects:@"hello",@"hai", nil]; /* 所有 [set allObjects]; 随机一个 [set anyObject]; */ NSLog(@"set===%@",[set allObjects]); //创建一个可变的Set NSMutableSet *set2=[NSMutableSet set]; //添加元素 //  [set2 a

NSDictionary NSMutableDictionary NSSet NSMutableSet

//description只是返回了一个字符串 //    [person description]; //        //如果想要打印需要NSLog //    NSLog(@"%@", [person description]);         //打印一个对象,实质打印的是description返回的字符串,如果没有重写description方法,系统默认打印<类名:指针[CDATA[]]> //    NSLog(@"%@", person

NSArray,NSMutable和NSSet,NSMutableSet和NSDictionary,NSMutableDictionary用法

开始编写应用程序的代码时,可以利用大量的 Objective-C 框架.其中,为所有应用程序提供基本服务的 Foundation 框架尤为重要.Foundation 框架包括表示基本数据类型的值类(如字符串和数字)以及用于储存其他对象的集 (collection) 类.ToDoList 应用程序中的大量代码都可以依靠值类和集类来编写. 值对象 Foundation 框架提供了为字符串.二进制数据.日期与时间.数字以及其他值产生值对象的类. 值对象是指封装了基本值(属于 C 数据类型)且提供与该值

[OC Foundation框架 - 21] NSSet集合 &amp; 集合之间的转换

A.NSSet 跟NSArray一样,不可变 NSArray 自然顺序 NSSet是无序的 NSSet不允许存入重复元素,可以用来过滤重复元素 也有可变的NSMutableSet B.集合转换 1 // 1.NSArray 转换成 NSMutableArray 2 NSArray *array = @[@"one", @"two", @"three"]; 3 NSMutableArray *muArray = [NSMutableArrayarr

OC -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)

//一: 迭代器 // 数组 NSArray *arr= @[@"1",@"2",@"3",@"4",@"5"]; NSEnumerator *enumerator = [arr objectEnumerator]; NSString *str = nil; while (str = [enumerator nextObject]) { NSLog(@"%@",str); } // 字典

NSArray,NSDictionary,NSSet总结

-学习笔记,以备以后查询 ------干货分割线------------------- -NSArray 1.初始化.取值等基础操作 -NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作 NSArray * array = [[NSArray alloc] init]; NSArray * array1 = [NSArray                        arrayWithObjects:@"one",@"two",@&q

OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)

//一: 迭代器 //数组 NSArray *arr=@[@"1",@"2",@"3",@"4",@"5"]; NSEnumerator *enumerator = [arr objectEnumerator]; NSString *str = nil; while (str = [enumerator nextObject]) { NSLog(@"%@",str); } // 字典 /

Foundation の NSSet

NSSet NSMutableSet