zoukankan      html  css  js  c++  java
  • NSSet基本使用

      1 int main(int argc, const char * argv[]) {
      2     @autoreleasepool {
      3 
      4         //创建一个集合对象  注:如果集合中写了两次或多次同一个对象 打印只能看到一个
      5         NSSet *set1 = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"three", nil];
      6         //注:集合里面最外层先是大括号 然后小括号
      7         //集合是无序 它是哈希散列排序  《数据结构》哈希算法
      8         NSLog(@"%@",set1);
      9         
     10         //集合中元素的个数
     11         NSLog(@"集合的个数:%ld",[set1 count]);
     12         
     13         
     14         //是否包含某个元素
     15         BOOL contains = [set1 containsObject:@"two"];
     16         NSLog(@"是否包含:%d",contains);
     17         
     18         //两个集合是否相等
     19         NSSet *set2 = [NSSet setWithObjects:@"one",@"two",@"three",@"four", nil];
     20         BOOL isEqual = [set1 isEqualToSet:set2];
     21 
     22         if (isEqual) {
     23             NSLog(@"两个集合相等");
     24         }else {
     25             NSLog(@"两个集合不相等");
     26         }
     27         
     28     
     29         //判断第一个集合是否是第二个集合的子集合
     30 
     31         BOOL isSubset = [set1 isSubsetOfSet:set2];
     32         NSLog(@"是否是子集合:%d",isSubset);
     33         
     34         
     35         //枚举遍历   for   while   do-while  forin   枚举器
     36         //取set2的集合枚举器 经常用枚举器遍历集合
     37         NSEnumerator *enumerator = [set2 objectEnumerator];
     38         NSString *str;
     39         //nextObject 下一个元素
     40         while (str = [enumerator nextObject]) {
     41             NSLog(@"%@",str);
     42         }
     43         
     44         //通过数组的方式去创建集合  (数组转成集合)
     45         NSSet *set3 = [NSSet setWithArray:@[@"one",@"five"]];
     46         NSLog(@"set3:%@",set3);
     47         //查看集合所有元素 返回一个数组 (集合转成数组)
     48         NSArray *array1 = [set3 allObjects];
     49         NSLog(@"array1:%@",array1);
     50         
     51         
     52         /********可变集合*******/
     53         //创建空的集合
     54         NSMutableSet *mSet = [[NSMutableSet alloc] init];
     55         NSLog(@"%@",mSet);
     56         
     57         // 58         //增加集合元素
     59         [mSet addObject:@"one"];
     60         [mSet addObject:@"one"];
     61         [mSet addObject:@"two"];
     62         [mSet addObject:@"three"];
     63         NSLog(@"%@",mSet);
     64         
     65         // 66         //删除集合元素
     67         [mSet removeObject:@"one"];
     68         NSLog(@"%@",mSet);
     69         
     70         
     71         //集合中添加集合
     72         [mSet unionSet:set2];
     73         NSLog(@"------%@",mSet);
     74         
     75         //集合中删除集合  删除的时候 如果要删除集合里面有多的集合元素,mSet没有此集合元素 删除的时候不会崩溃
     76 //        NSSet *_set = [NSSet setWithObjects:@"one",@"two",@"three",@"four",@"1", nil];
     77 
     78 //        [mSet minusSet:_set];
     79 //        NSLog(@"======%@",mSet);
     80         
     81         /********指数集合或索引集合**********/
     82         //继承NSObject
     83         //创建一个索引集合  通过在指定范围创建索引集合 注:range千万别超范围会崩溃
     84 //        NSIndexSet *set4 = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(2, 4)];
     85         
     86         //创建一个空的可变的索引集合
     87         NSMutableIndexSet *set5 = [[NSMutableIndexSet alloc] init];
     88         //给可变索引集合添加下标
     89         [set5 addIndex:0];
     90         [set5 addIndex:2];
     91         [set5 addIndex:3];
     92         [set5 addIndex:6];
     93         
     94         
     95         NSArray *allArray = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven", nil];
     96         //通过索引集合得到数组(索引range范围内的数组元素)
     97         NSArray *subArray = [allArray objectsAtIndexes:set5];
     98         NSLog(@"++++++++%@",subArray);
     99         
    100     
    101     }
    102     return 0;
    103 }
  • 相关阅读:
    hdu 5352 匈牙利(多重匹配)
    hdu 2112 最短路+stl
    hdu 1811 拓扑排序+并查集+细心
    hdu5407 CRB and Candies
    hdu1018 Big Number
    hdu5410 CRB and His Birthday
    hdu1023 Train Problem II
    hdu4812 D Tree
    hdu1085 Holding Bin-Laden Captive!
    hdu4810 Wall Painting
  • 原文地址:https://www.cnblogs.com/GJ-ios/p/5483480.html
Copyright © 2011-2022 走看看