OC中的集合NSSet

 1  集合NSSet(无序)
 2    本质上是哈希表,采用散列算法来查找
 3    每个元素只有一次,元素是无序的
 4
 5    创建 每个元素可以是任意的对象
 6    NSSet *set=[[NSSet alloc] initWithObjects:@"one",@"two",
 7    @"three",@"four",nil];
 8    NSSet *set2=[[NSSet alloc] initWithObjects:@"one",@"two",
 9    @"three",@"four",@"five",nil];
10    打印
11    NSLog(@"%@",set);结果one three four two可见是无序的
12    获得集合中的元素的个数
13    NSLog(@"%@lu",[set count]);
14    判断集合中是否拥有某个元素
15    BOOL ret=[set containsObject:@"two"];
16
17    判断两个集合是否相等
18    BOOL ret=[set isEqualToSet:set2];
19    判断第一个集合是否是第二个集合的子集合
20    BOOL ret=[set isSubsetOfSet:set2];
21
22    也可以通过枚举器法遍历
23    NSEnumerator *enumrator=[set objectEnumrator];
24    枚举器可以遍历数组、字典、和集合;
25    NSString *str;
26
27    while(str=[enumrator nextObject]){
28     NSLog(@"%@",str);
29    }
30
31    集合还可以利用从数组中提取元素来创建
32    NSArray *array=[[NSArray alloc] initWithObjects:@"one",@"two",nil];
33    NSSet *set=[[NSSet alloc] initWithObjects:array];
34    集合也可以把自己的元素取出来生成数组对象
35    NSArray *array2=[set allObjects];
36    NSLog(@"%@",array2);
37
38    [array release];
39    [set release];
40
41
42    NSMutableSet *set=[NSMutableSet alloc] init];
43    动态添加,如果添加的有重复,只保留一个
44    [set addObject:@"one"];
45    [set addObject:@"two"];
46    [set addObject:@"one"];
47
48    删除
49    [set removeObject:@"two"];
50
51    添加集合
52    NSSet *set2=[[NSSet alloc] initWithObjects:@"five",@"four",nil];
53    [set unionSet:set2];set2中的内容全部添加到set中,重复的只保留一个
54
55    [set minusSet:set2];将set2中的内容删除
56
57    NSIndexSet指数集合(索引集合)
58    装的都是数字
59    NSIndexSet *indexSet=[NSIndexSet alloc] initWithIndexesInRange:
60        NSMakeRange(2,3)];从2开始3个数字,所以集合中数字是2,3,4
61
62    提取数组中的元素
63    NSArray *array=[[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",nil];
64    NSArray *newArray=[array objectsAtIndexes:indexSet];
65    NSLog(@"%@",newArray);结果是 three,four,five
66
67
68    NSMutableIndexSet *indexSet=[[NSMutableIndexSet alloc]init];
69    [indexSet addIndex:0];
70    [indexSet addIndex:3];
71    [indexSet addIndex:5];
72     NSArray *array=[[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",nil];
73    NSArray *newArray=[array objectsAtIndexes:indexSet];
74    NSLog(@"%@",newArray);结果是 one,four,six
时间: 2024-08-25 15:54:32

OC中的集合NSSet的相关文章

OC中NSDictionary和NSSet简单操作

/** *  字典 存放键值对类型的数据 存放数据是无序的 */ // 字典在控制台输出是用{}包括起来的 // NSDictionary 不可变字典 // 1.创建对象 // 初始化方法 NSDictionary *dict1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"zhizunbao", @"name", @"man", @"sex", @27, @"ag

OC中的集合详解

/************** NSDate *************/                 //创建NSDate实例,返回GMT时间         NSDate *date1=[NSDate date];         NSLog(@"%@",date1);                 //返回date1保存的时间与date2的时间间隔         //NSTimeInterval是一个双精度值,表示以秒为单位的时间         NSDate *date

OC中NSDictionary(字典)、NSMutableDictionary(可变字典)、NSSet(集合)、NSMutableSet(可变集合)得常用方法

字典用于保存具有映射关系数据的集合 一个key—value对认为是一个条目(entry),字典是存储key—value对的容器 与数组不同,字典靠key存取元素 key不能重复,value必须是对象 键值对在字典中是无序存储的 字典分:不可变字典(NSDictionary)和可变字典(NSMutableDictionary) 不可变字典一旦创建,键值对就不可更改,不可添加,不可删除,仅能读取key或者value 常用方法有: 1.创建字典对象 2.获取所有key值,获取所有value值 3.通过

OC中NSSet去重细节

我们都知道,NSSet在存储数据时,不允许存储相同数据?那么,这里的相同该如何理解呢? 很多人都简单的理解为按照其存储对象的内存地址进行评判.其实不然.经过个人实验证明:当类型为NSString,NSNumber..时,依然会比较其值是否相同,如果相同,依然会被去除. 其评判依据类似与isEqualTo 或者 isEqualToString方法:即先比较内存是否相等,然后比较其值是否相等. OC中NSSet去重细节,布布扣,bubuko.com

OC中字典,数组,集合的关系和使用

1.不可变数据字典(NSDicionary) 字典:用来存储具有一一对应关系的数据.一个key 对应一个 value ,key起到了唯一标示的作用,key必须是唯一的,但是一个vlaue可以对应多个key.字典存储的是无序的元素,一对键值对组成了字典中的一个元素. ①.不可变字典初始化赋值 <span style="font-size:18px;"> //笑笑语法 NSDictionary *dic = @{@"name":@"zhangdan

OC中的Values——and——Collections

值和集合 在OC中可以使用C中的基本数据类型. 可以在类的实现里面对这些基本数据类型的属性进行C中的:++ – += -= *=等操作. 如下所示: //---------接口声明----------- @interface XYZPerson : NSObject @property int age; -(void)gettingOlder; @end //----------接口实现----------- @implementation XYZPerson -(void)gettingOld

OC Foundation框架—集合

Foundation框架—集合 一.NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组. C语言数组有一个缺点即数组中只能存放同种数据类型的元素. OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等. (2)NSArray的创建 (3)NSArray的访问 (4)NSArray的遍历 数组的遍历有以下几种方式: 首先创建一个数组 第

oc中字典的实现方法详解

一:字典的基本概念 Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样. 通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的. 此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象 二:不可变字典-NSDictionary 1:初始化(以一个元素和多个元素

OC中的NSNumber、NSArray、NSString的常用方法

和C语言不同在Objective-C语言中有单独的字符串类NSString.C语言中string是由 charASCLL码字符组成 OC中字符串是由unicharUnicode字符组成 NSString不可变字符串即创建以后内容和长度不能更改 NSMutableString可变字符串即创建以后内容还可以修改 在使用哟个字符串对象之前首先创建一个新的字符串可以使用实例方法和便利构造器 NSString常用的方法 1.使用实例方法和便利构造器创建一个新的字符串 2.获取字符串长度 3.获取子字符串