zoukankan      html  css  js  c++  java
  • NSSet

    NSSet跟NSArray的区别:散列存与顺序存储的区别。体现在查找速度上的差别。都存放cocoa对象。

     

     

    //

    //  TextNSSet.m

    //  hellowWorld

    //

    //  Created by hongtao on 2018/4/11.

    //  Copyright © 2018 hongtao. All rights reserved.

    //

     

    #import "TestNSSet.h"

     

    @implementation TestNSSet

    -(void)testNSSet {

        //不可变集合对象。

        //NSArray区别:元素是无序的。不可以重复元素。

        //生成:initWithObject 调用类方法生成setWithObjects

        NSSet* set = [[NSSet alloc]initWithObjects:@"1",@"name",@"1", nil];

        NSLog(@"set count:@%lu",(unsigned long)[set count]);

        //类方法初始化。

        NSSet* set2 = [NSSet setWithObjects:@"1",@"2",@"3",nil];

        NSLog(@"set2: %@",set2);

        //拼接

        NSSet *set3=[NSSet new] ;

        //注意 set3 重新赋了值。不是set3可变。

        set3 =[set3 setByAddingObjectsFromArray:@[@"6",@"1",@"8"]];

        NSLog(@"set3 affter: %@",set3);//输出结果

        

        set3 =[set2 setByAddingObjectsFromArray:@[@"6",@"1",@"8"]];

        NSLog(@"set3 affter: %@",set3);//输出结果 3,1,6,8,2 (无重复)

        

        NSLog(@"set 3 contain object "1":%@",[set3 containsObject:@"1"]?@"YES":@"NO");

        //对比两个set是否一样

        NSLog(@"set3 等于 set2:%@",[set3 isEqualToSet:set2]?@"YES":@"NO");

        

        for (int i =0 ; i< set3.count; i++) {

          //不可以指定取到哪个位置的值。 set3[1] 这样是不行的。

        }

        //可以使用枚举遍历

        NSEnumerator * em = [set3 objectEnumerator];

        id obj ;

        while (obj = [em nextObject]){

            NSLog(@"in while -->%@",obj);

        }

        

        NSMutableSet *mset = [[NSMutableSet alloc]initWithCapacity:10];

        [mset addObject:@"1"];

        [mset addObjectsFromArray:@[@"2",@"3",@"9"]];

        [mset removeObject:@"1"];

        id obj1 = [mset allObjects];

        NSLog(@"%@",obj1);

        

        em = [mset objectEnumerator];

        while (obj = [em nextObject]){

            NSLog(@"in while ----->%@",obj);

        }

        

    }

    @end

  • 相关阅读:
    『高性能模型』轻量级网络ShuffleNet_v1及v2
    『计算机视觉』物体检测之RefineDet系列
    『计算机视觉』目标检测前沿及回顾(2018)
    『高性能模型』轻量级网络MobileNet_v2
    『流畅的Python』第14章:可迭代的对象、迭代器和生成器
    『流畅的Python』第12章:继承的优缺点
    『关键点检测』CPN:Cascaded Pyramid Network for Multi-Person Pose Estimation
    『计算机视觉』Mask-RCNN_从服装关键点检测看KeyPoints分支
    『计算机视觉』Mask-RCNN_训练网络其三:训练Model
    『计算机视觉』mini深度学习框架实现
  • 原文地址:https://www.cnblogs.com/mamamia/p/8819441.html
Copyright © 2011-2022 走看看