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

  • 相关阅读:
    mysql不停库不锁表在线主从配置
    MySQL5.7不停机不锁表主从同步实战
    另类 k8s 集群灾难恢复方法:用 master 服务器镜像恢复出新集群
    我在新西兰卖挖掘机之续篇十八------坚持的秘诀(坚持的秘诀就2条,第一是初始摩擦力要足够小(开头不能太困难,时间不能太久);第二是坚持的事情能够不断地给你提供某种真实的好处)(其实就是正反馈,加上一点点兴趣)
    分布式系统中那些不靠谱任务-CAP 到底是什么
    分布式系统架构中关于切分数据库事务的 ACID 性质的可用性与性能-BASE 理论和CAP 定理
    SSO协议-SAML和OAuth2
    领域建模
    基于 Docker 容器Net Core微服务部署 Nginx 集群架构
    消息队列和分布式锁
  • 原文地址:https://www.cnblogs.com/mamamia/p/8819441.html
Copyright © 2011-2022 走看看