• 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

  • 相关阅读:
    域用户组策略禁用QQ等软件
    关于使用IDE制作样式表后不能正常显示的问题
    asp.net中使用ckfinder2选择图片并返回图片文件的路径的代码
    按规定长度显示指定绑定字段的内容
    ckeeditor和ckfinder在asp.net中的使用
    开发播放器中所学/用到的知识
    用户体验的网站首页设计的准则
    0410_gdgrid_checkbox_自己强加的多选,选中,批量删除
    0405_hxtx_主题游常用联系人功能代码实现
    0401flag
  • 原文地址:https://www.cnblogs.com/mamamia/p/8819441.html
Copyright © 2020-2023  润新知