NSCountedSet
可变,无序的不同对象集合,可能在集合中出现多次。(即使对象已多次添加到集合中,集合中中也只有一个对象实例);继承自NSMutableSet;
创建集合对象
// 创建指定容量的空集合对象
NSCountedSet countedSet1 = [[NSCountedSet alloc]initWithCapacity:2];
// 创建指定数组内容的集合对象
NSArray *array = @[@"1",@"2",@"3",@"4",@"5",@"1",@"2"];
NSCountedSet *countedSet2 = [[NSCountedSet alloc]initWithArray:array]; //{(3,1,4,2,5)}
// 创建指定set内容的结合对象
NSSet *set = [NSSet setWithObjects:@"1",@"2",@"1",@"3",@"2", nil];//{(3,1,2)}
NSCountedSet *countedSet3 = [[NSCountedSet alloc]initWithSet:set];
添加和删除集合内容
// 将给定对象添加到集合中。
[CountedSet1 addObject:@"1"]; //{(1)}
// 从集合中删除给定对象。
[CountedSet1 removeObject:@"1"]; //{()}
结合和重组
// 如果不存在,则将另一个给定集中的每个对象添加到接收集(取并集)
[CountedSet unionSet:CountedSet1]; //{(3,1,4,2,5)}
//如果不存在,则将另一个给定集中的每个对象添加到接收集 (取交集)
[CountedSet minusSet:CountedSet1]; //{(3,1,4,2,5)}
//从接收集中删除不是另一个给定集的成员的每个对象。
[CountedSet intersectSet:CountedSet1];//{(3,1,2)}
遍历
//返回与集合中给定对象关联的计数
NSUInteger count = [CountedSet countForObject:@"2"]; // 1
//返回一个枚举器对象,该对象允许您访问集合中的每个对象,与其计数无关。
NSEnumerator *enumerator = [CountedSet objectEnumerator];
id obj;
while (obj = [enumerator nextObject]) {
NSLog(@"字典正序值开始打印:%@\n",obj);//3,1,2
}
网友评论