<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      iOS NSSet 學習 “無序數組” & 去重 案例

      NSSet,NSMutableSet,NSCountedSet類聲明編程接口對象的無序集合(散列存儲:在內存中的存儲位置不連續)。

      而NSArray,NSDictionary類聲明編程接口對象的有序集合(有序存儲:在內存中的存儲位置連續)。”

      NSSet 運用 hash(哈希)散列算法 查找目標集合元素比NSArray快

      特點:無序性(但是可以做有序化操作),確定性,差異性(互異性) 

      舉例一個簡單的使用場景:

      去重:

      NSMutableArray KVO  NSMutableArray NSSet  NSOrderedSet 各種方法 比較

      結論:隨著數據量增加 都比 NSMutableArray 快~

          NSArray *array = @[@1,@2,@3,@4,@4,@5,@2,@2];
          
          //NSMatableArray 去重結果: 1 2 3 4 5  有序 在 array 里面相對的順序的"有序"
          NSMutableArray *resultArray = [NSMutableArray array];
          for (NSNumber *num  in array) {
              if (![resultArray containsObject:num]) {//判斷該集合元素否存在
                  [resultArray addObject:num];
              }
          }
          NSLog(@"resultArray :%@",resultArray);
          
          //KVC容器操作
          //容器不僅僅能使用KVC方法實現對容器成員傳遞普通的操作消息,KVC還定義了特殊的一些常用操作,使用valueForKeyPath:結合操作符來使用
          //這里使用對象操作符:
          //@distinctUnionOfObjects、@unionOfObjects
          //@distinctUnionOfObjects操作符返回被操作對象指定屬性的集合并做去重操作,而@unionOfObjects則允許重復。如果其中任何涉及的對象為nil,則拋出異常。
          //去重結果  : 5 1 2 3 4 無序
          NSArray *values = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];
          NSLog(@"value   : %@",values);
       
          
          //沒使用 NSSet 前 其實我是會使用字典的 字典的特點 也是無序鍵值對 效率也是優于使用數組排重的.
          //無序結果  :3,2,5,1,4
          NSMutableDictionary *numDictionary = [NSMutableDictionary dictionary];
          for (NSNumber *num  in array) {
              [numDictionary setObject:num forKey:num];
          }
          NSLog(@"numDictionary all keys : %@",numDictionary.allKeys);
          
          
          //NSSet 去重結果  : 5 1 2 3 4  無序
          NSSet *numSet = [[NSSet alloc]initWithArray:array];
          NSLog(@"numSet Array : %@",numSet.allObjects);
          
          //NSSet 有序化操作 : 1 2 3 4 5 同上面的"有序"
          NSOrderedSet *orderNumSet = [NSOrderedSet orderedSetWithArray:array];
          NSLog(@"orderNumSet Array : %@",orderNumSet.array);
          
          //KVO 容器對象操作符 distinctUnionOfObjects
          //3,2,5,1,4  無序
          
          NSSet *setValues = [numSet valueForKeyPath:@"@distinctUnionOfObjects.self"];
          NSLog(@"setValues  : %@",setValues);

       

      NSSet 具體使用 :

      http://www.rzrgm.cn/GISerYang/p/3340937.html

      posted on 2016-08-22 12:00  ACM_Someone like you  閱讀(2213)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 真实国产老熟女无套内射| 精品午夜福利短视频一区| 不卡一区二区国产精品| 免费看国产精品3a黄的视频| 国产高清在线男人的天堂| 人妻有码av中文字幕久久琪| 国产一区日韩二区三区| 亚洲最新无码中文字幕久久| 无码AV中文字幕久久专区| 国产日韩精品免费二三氏| 国产成人精品日本亚洲专区6| 修武县| 久热re这里精品视频在线6| 蜜臀av一区二区三区日韩| 国产精品流白浆无遮挡 | 亚洲中文字幕国产精品| 久久91精品牛牛| 乱人伦无码中文视频在线| 麻豆一区二区三区精品视频 | 亚洲国产精品高清久久久| 欧美亚洲国产日韩一区二区| 亚洲日韩av无码| 亚洲精品国模一区二区| 国产午夜福利在线视频| 天天狠天天透天天伊人| 日本高清视频色wwwwww色| 欧美大胆老熟妇乱子伦视频| 亚洲中文无码手机永久| 天天爽夜夜爽人人爽一区二区| 皋兰县| 亚洲国产片一区二区三区| 亚洲日韩精品无码一区二区三区| 亚洲精品久久久久成人2007| 国产在线精品中文字幕| 加勒比无码人妻东京热| 久久a级片| 四虎永久免费精品视频| 和艳妇在厨房好爽在线观看| 噜妇插内射精品| 亚洲av成人网在线观看| 99久久久国产精品免费无卡顿 |