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 存储引擎 (一)
    mssql sqlserver if exists 用法大汇总
    mssql sqlserver 使用sql脚本实现相邻两条数据相减的方法分享
    mssql sqlserver 使用sql脚本获取字符串存在多少个网址(url地址)的方法分享
    mssql sqlserver sql脚本自动遍历重复生成指定表记录
    mssql sqlserver 使用sql脚本剔除数据中的tab、空格、回车等特殊字符的方法分享
    mssql sqlserver 使用SSMS运行sql脚本的六种方法分享
    mssql sqlserver isnull coalesce函数用法区别说明
    C# 当前 .NET SDK 不支持将 .NET Core 2.1 设置为目标。请将 .NET Core 2.0 或更低版本设置为目标,或使用支持 .NET Core 2.1 的 .NET SDK 版本。
    mssql sqlserver 三种数据表数据去重方法分享
  • 原文地址:https://www.cnblogs.com/mamamia/p/8819441.html
Copyright © 2011-2022 走看看