oc中 NSArray NSDictionary NSSet的一些基本用法

int main(int argc, const char * argv[])

{


    @autoreleasepool {

        // 把字符串放入可变数组与不可变数组内

        NSString *str1 = @"孙悟空";

        NSString *str2 = @"猪八戒";

        NSString *str3 = @"沙僧";

        NSArray *array =[[NSArray alloc]initWithObjects:str1,str2,str3, nil] ;

        NSLog(@"不可变数组:");

        for (NSString *str in array) {

            NSLog(@"%@",str) ;

        }

        

        NSMutableArray *mArray = [NSMutableArray new] ;

        [mArray addObject:str1] ;

        [mArray addObject:str2] ;

        [mArray addObject:str3] ;

        NSLog(@"可变数组:") ;

        

        //遍历数组的3种方法1 索引遍历  2 获取枚举器  3 快速枚举

        NSLog(@"索引遍历的结果是:");


        for (NSString *str in mArray) {

            NSLog(@"%@",str) ;

            }

        NSEnumerator *enumerator = [mArray objectEnumerator] ;

        id obj ;

        NSLog(@"枚举遍历的结果是");

        while(obj=[enumerator nextObject])

        {

            NSLog(@"%@",obj) ;

        }

        NSLog(@"快速遍历的结果是");

        for(obj in mArray)

        {

            NSLog(@"%@",obj);

        }

            

        [mArray removeObject:str1] ;

        for (NSString *str in mArray) {

            NSLog(@"%@",str) ;

        }


       //删除数组中的最后一个对象

        [mArray removeLastObject] ;

        NSLog(@"删除数组内最后一个对象后结果是:") ;

        [mArray removeObject:str1] ;

        for (NSString *str in mArray) {

            NSLog(@"%@",str) ;

        }

        //删除指定索引的对象

       // [mArray removeObjectsAtIndexes:<#(NSIndexSet *)#>] ;

        //对可变数组内的元素进行替换

        [mArray replaceObjectAtIndex:0 withObject:@"过春节"];

        NSLog(@"替换后的结果是");

        [mArray removeObject:str1] ;

        for (NSString *str in mArray) {

            NSLog(@"%@",str) ;

        }


        


    }

    

    // int型的变量放入数组,然后在从数组内取出,打印出int型的变量

    int a = 10 ;

    int b = 12 ;

    NSNumber *number1 = [NSNumber numberWithInt:a] ;

    NSNumber *number2 = [NSNumber numberWithInt:b] ;

    NSArray *array1 = [NSArray arrayWithObjects:number1,number2, nil] ;

    for(NSNumber *num in array1)

    {

        NSLog(@"%d",[num intValue]) ;

    }

    

    //下面是字典的一些简介

    //数组和字典一样里面村饭的元素都要是度一项类型的才行

    //字典和数组不同的是:它采用的键差挨训的优化存储方式,可以通过关键字立刻找出要查的数据,而不用遍历整个集合去找

    //dictionaryWithObjectsAndKeys是成对出现的 ,都是对象和值

    //字典的关键字和值都是id类型的

    //字典的关键字不要重复,如果重复了,后面的值就会覆盖前面的值

    //字典的一些删除  替换等方法和数组是一样的

    

    NSDictionary *dic =[[NSDictionary alloc]initWithObjectsAndKeys:@"孙悟空",@"大师兄是:",@"猪八戒",@"二师兄是:",@"沙僧",@"三师兄是:", nil] ;

    

    NSArray *array2 = [dic allKeys] ;

    for (id key in array2) {

        id value = [dic valueForKey:key] ;

        NSLog(@"%@%@",key,value) ;

    }

    //可变字典里添加对象

    NSMutableDictionary *mdic = [NSMutableDictionary dictionaryWithCapacity:5] ;

    

    

    [mdic setObject:@"孙悟空" forKey:@"大师兄"];

    [mdic setObject:@"猪八戒" forKey:@"二师兄"] ;

    [mdic setObject:@"沙僧" forKey:@"三师兄"];

    NSArray *keys = [mdic allKeys] ;

    id key,value ;

    for (key in keys) {

        value = [mdic objectForKey:key] ;

        NSLog(@"key = %@,value = %@",key,value) ;

        

    }

    

//  1 NSSetNSSet也是一中集合,他和数组,字典一样只能存储对象类型的数据,如果要存储c语言基本类型的话,就先把他们封装成对象再放进集合里。2 NSSet集合不能存放相同的元素,它里面的元素是互不相同的,而且元素都是无序存放的,属于散列存放  3 在搜索一个元素时 NSSetNSArray效率高,主要是它用到了哈希算法,比如你要存储元素A,哈希算法直接就能找到A所在的位置,而对于NSSArray要想知道A在不在数组里,需要遍历整个数组,显然效率低了。

    return 0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值