zoukankan      html  css  js  c++  java
  • (转)Iphone数组一些基础操作 NSArray/NSMutableArray

    /*******************************************************************************************

        NSArray

         *******************************************************************************************/


        /*---------------------------创建数组------------------------------*/
        //NSArray *array = [NSArray alloc] initWithObjects:
        @"One",@"Two",@"Three",@"Four",nil];


        self.dataArray = array;
        [array release];


        //- (unsigned) Count;数组所包含对象个数;
        NSLog(@"self.dataArray cound:%d",[self.dataArray count]);


        //- (id) objectAtIndex: (unsigned int) index;获取指定索引处的对象;
        NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);




        /*--------------------------从一个数组拷贝数据到另一数组(可变数级)----------------------------*/    


        //arrayWithArray:
        //NSArray *array1 = [NSArray alloc] init];
        NSMutableArray *MutableArray = [NSMutableArray alloc] init];
        NSArray *array = [NSArray arrayWithObjects:
                          @"a",@"b",@"c",nil];
        NSLog(@"array:%@",array);
        MutableArray = [NSMutableArray arrayWithArray:array];
        NSLog(@"MutableArray:%@",MutableArray);


        array1 = [NSArray arrayWithArray:array];
        NSLog(@"array1:%@",array1);




        //Copy


        //id obj;
        NSMutableArray *newArray = [NSMutableArray alloc] init];
        NSArray *oldArray = [NSArray arrayWithObjects:
                             @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];


        NSLog(@"oldArray:%@",oldArray);
        for(int i = 0; i < [oldArray count]; i++)
        {        
            obj = [oldArray objectAtIndex:i] copy];
            [newArray addObject: obj];
        }
        //     
        NSLog(@"newArray:%@", newArray);
        [newArray release];




        //快速枚举


        //NSMutableArray *newArray = [NSMutableArray alloc] init];
        NSArray *oldArray = [NSArray arrayWithObjects:
                             @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];    
        NSLog(@"oldArray:%@",oldArray);


        for(id obj in oldArray)
        {
            [newArray addObject: obj];
        }
        //     
        NSLog(@"newArray:%@", newArray);
        [newArray release];    




        //Deep copy


        //NSMutableArray *newArray = [NSMutableArray alloc] init];
        NSArray *oldArray = [NSArray arrayWithObjects:
                             @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];    
        NSLog(@"oldArray:%@",oldArray);    
        newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);
        NSLog(@"newArray:%@", newArray);
        [newArray release];    




        //Copy and sort


        //NSMutableArray *newArray = [NSMutableArray alloc] init];
        NSArray *oldArray = [NSArray arrayWithObjects:
                             @"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];    
        NSLog(@"oldArray:%@",oldArray);
        NSEnumerator *enumerator;
        enumerator = [oldArray objectEnumerator];
        id obj;
        while(obj = [enumerator nextObject])
        {
            [newArray addObject: obj];
        }
        [newArray sortUsingSelector:@selector(compare:)];
        NSLog(@"newArray:%@", newArray);
        [newArray release];






        /*---------------------------切分数组------------------------------*/


        //从字符串分割到数组- componentsSeparatedByString:
        NSString *string = [NSString alloc] initWithString:@"One,Two,Three,Four"];
        NSLog(@"string:%@",string);    
        NSArray *array = [string componentsSeparatedByString:@","];
        NSLog(@"array:%@",array);
        [string release];




        //从数组合并元素到字符串- componentsJoinedByString:
        NSArray *array = [NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];
        NSString *string = [array componentsJoinedByString:@","];
        NSLog(@"string:%@",string);






        /*******************************************************************************************

         NSMutableArray

         *******************************************************************************************/

        /*---------------给数组分配容量----------------*/
        //NSArray *array;
        array = [NSMutableArray arrayWithCapacity:20];






        /*--------------在数组末尾添加对象----------------*/
        //- (void) addObject: (id) anObject;
        //NSMutableArray *array = [NSMutableArray arrayWithObjects:
        @"One",@"Two",@"Three",nil];
        [array addObject:@"Four"];
        NSLog(@"array:%@",array);






        /*--------------删除数组中指定索引处对象----------------*/    
        //-(void) removeObjectAtIndex: (unsigned) index;    
        //NSMutableArray *array = [NSMutableArray arrayWithObjects:
        @"One",@"Two",@"Three",nil];
        [array removeObjectAtIndex:1];
        NSLog(@"array:%@",array);






        /*-------------数组枚举---------------*/    
        //- (NSEnumerator *)objectEnumerator;从前向后
        //NSMutableArray *array = [NSMutableArray arrayWithObjects:
        @"One",@"Two",@"Three",nil];
        NSEnumerator *enumerator;
        enumerator = [array objectEnumerator];


        id thingie;
        while (thingie = [enumerator nextObject]) {
            NSLog(@"thingie:%@",thingie);
        }




        //- (NSEnumerator *)reverseObjectEnumerator;从后向前
        //NSMutableArray *array = [NSMutableArray arrayWithObjects:
        @"One",@"Two",@"Three",nil];
        NSEnumerator *enumerator;
        enumerator = [array reverseObjectEnumerator];


        id object;
        while (object = [enumerator nextObject]) {
            NSLog(@"object:%@",object);
        }




        //快速枚举
        //NSMutableArray *array = [NSMutableArray arrayWithObjects:
        @"One",@"Two",@"Three",nil];
        for(NSString *string in array)
        {
            NSLog(@"string:%@",string);
        }






        /*******************************************************************************************

         NSDictionary

         *******************************************************************************************/


        /*------------------------------------创建字典------------------------------------*/
        //- (id) initWithObjectsAndKeys;


        //NSDictionary *dictionary = [NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];
        NSString *string = [dictionary objectForKey:@"One"];
        NSLog(@"string:%@",string);
        NSLog(@"dictionary:%@",dictionary);
        [dictionary release];




        /*******************************************************************************************

         NSMutableDictionary

         *******************************************************************************************/


        /*------------------------------------创建可变字典------------------------------------*/    
        //创建
        NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];


        //添加字典
        [dictionary setObject:@"One" forKey:@"1"];
        [dictionary setObject:@"Two" forKey:@"2"];
        [dictionary setObject:@"Three" forKey:@"3"];
        [dictionary setObject:@"Four" forKey:@"4"];
        NSLog(@"dictionary:%@",dictionary);


        //删除指定的字典
        [dictionary removeObjectForKey:@"3"];
        NSLog(@"dictionary:%@",dictionary);




        /*******************************************************************************************

         NSValue(对任何对象进行包装)

         *******************************************************************************************/


        /*--------------------------------将NSRect放入NSArray中------------------------------------*/    
        //将NSRect放入NSArray中
        NSMutableArray *array = [NSMutableArray alloc] init];
        NSValue *value;
        CGRect rect = CGRectMake(0, 0, 320, 480);    
        value = [NSValue valueWithBytes:&rect objCType:@encode(CGRect)];
        [array addObject:value];
        NSLog(@"array:%@",array);


        //从Array中提取
        value = [array objectAtIndex:0];
        [value getValue:&rect];
        NSLog(@"value:%@",value);




        /*******************************************************************************************

         从目录搜索扩展名为jpg的文件

         *******************************************************************************************/


        //NSFileManager *fileManager = [NSFileManager defaultManager];
        NSString *home;
        home = @"../Users/";


        NSDirectoryEnumerator *direnum;
        direnum = [fileManager enumeratorAtPath: home];


        NSMutableArray *files = [NSMutableArray alloc] init];


        //枚举
        NSString *filename;
        while (filename = [direnum nextObject]) {
            if([filename pathExtension] hasSuffix:@"jpg"]){
                [files addObject:filename];
            }
        }


        //快速枚举
        //for(NSString *filename in direnum)
        //{
        //    if([filename pathExtension] isEqualToString:@"jpg"]){
        //        [files addObject:filename];
        //    }
        //}
        NSLog(@"files:%@",files);


        //枚举
        NSEnumerator *filenum;
        filenum = [files objectEnumerator];
        while (filename = [filenum nextObject]) {
            NSLog(@"filename:%@",filename);
        }


        //快速枚举
        //for(id object in files)
        //{
        //    NSLog(@"object:%@",object);
        //} 

  • 相关阅读:
    leetcode 86. Partition List
    leetcode 303. Range Sum Query
    leetcode 1310. XOR Queries of a Subarray
    leetcode 1309. Decrypt String from Alphabet to Integer Mapping
    leetcode 215. Kth Largest Element in an Array
    将numpy.ndarray写入excel
    leetcode 1021 Remove Outermost Parentheses
    leetcode 1306. Jump Game III
    leetcode 1305. All Elements in Two Binary Search Trees
    ICCV2019 oral:Wavelet Domain Style Transfer for an Effective Perception-distortion Tradeoff in Single Image Super-Resolution
  • 原文地址:https://www.cnblogs.com/greywolf/p/3245114.html
Copyright © 2011-2022 走看看