NSArray、NSMutableArray_前进的火车_新浪博客


  1.NSArry

//创建一个空数组,没有实际意义

        NSArray *array1 = [NSArray array]; 

//创建一个只有一个元素的数组,意义也不大

        NSArray *array2 = [NSArray arrayWithObject:@"one"]; 


//创建一个有多个元素的数组,注意,nil的作用

NSArray *array3 = [NSArray arrayWithObjects:@"one", @"two",          @"three", nil]; 

       //简化后的创建一个有多个元素的数组

        NSArray *array4 = @[@"one", @"two", @"three"]

       //创建数组array4的副本(深拷贝(copy))

NSArray *array5 = [NSArray arrayWithArray:array4];

        

        //求数组的长度:数组中的元素个数

        NSUInteger length = [array count];


        //通过下标,获取数组中的指定元素

        NSString *objStr = [array objectAtIndex:0];//使用实例方法的方式

        objStr = array[1];//使用下标的方式


        //求取数组的最后一个元素

        objStr = [array lastObject];

        //求取数组的第一个元素

        objStr = [array firstObject];

        NSLog(@"%@", objStr);


        //求一个数组元素在数组中的下标(NSUInteger)无符号整数类

        NSUInteger index = [array indexOfObject:@"two"];

//当元素不是数组中的元素时,得到的下标是垃圾值,当斗个元素重复时,得到的是相同元素中最后一个元素


        index = [array indexOfObject:@"5"]; 

        

        //数组的遍历

        for (int i = 0; i < [array count]; i++)

            NSLog(@"%@", array5[i]);



 1.2数组排序

使用sortedArrayUsingSelector这个方法,调用数组TRInteger中的compareInt方法进行排序

NSArray *sorted = [array sortedArrayUsingSelector:@selector(compareInt:)];

NSArray *sorted = [array sortedArrayUsingSelector:@selector(compareFloat:)];//排序方法

-(NSComparisonResult)compareInt:(TRInteger *)other//比较规则//必须是所在类指针//需要。h中声明

{

if (self.integer > other.integer)//前面的对象大于后面的对象,降序输出

        return NSOrderedAscending;

    else if (self.integer < other.integer)

        return NSOrderedDescending;

    else

        return NSOrderedSame;

}


-(NSComparisonResult)compareName:(TRStudent *)other

{

   return [self.name compare:other.name];//NSString类中本身提供了一个compare方法,这里直接返回这个比较的结果就行

}




2.NSMutableArray

可变数组的创建

NSMutableArray *array = [NSMutableArray array];

NSMutableArray *array1 = [NSMutableArray arrayWithCapacity:18];

NSMutableArray *array2 = @[@"one", @"two", @"three"];//退化成不可变数组

NSMutableArray *array3 = [NSMutableArray arrayWithObjects:@"one", @"two", @"three", nil];


向可变数组中添加元素

[array addObject:@"one"];//在数组的末尾添加一个元素

[array insertObject:@"five" atIndex: n];//下标 n 越界(超过预估值)会导致崩溃,从序号n开始的元素向后面移一位

修改数组元素

       [array replaceObjectAtIndex:n withObject:@"aaa"];//修改指定下标n的数组元素,仅修改一个元素

//替换

NSRange r = {1, 2};//范围中1为开始的下标,2为连续的元素个数

[array replaceObjectsInRange:r withObjectsFromArray:array2];//array2数组所有元素替换数组array中指定的范围

NSRange r = {1, 2};

NSRange r2 = {0, 2};

[array2 replaceObjectsInRange:r withObjectsFromArray:array2 range:r];

array2数组指定范围元素替换数组array中指定的范围



删除数组元素

[array4 removeLastObject];//删除最后一个元素

[array4 removeObject:@"two"];//删除指定对象对象不存在时,什么情况都不会发生

[array4 removeObjectAtIndex:0];//删除指定下标的数组元素,当下标不存在时,程序会崩溃

NSRange r = {1, 2};//1为要删除的数组元素开始的下标,2为从开始下标的连续2个元素

[array5 removeObjectsInRange:r];//删除指定范围的元素

[array1 removeObjectsInArray:array2];//删除指定数组中的所有元素,删除多个元素(在数组1中删除与数组2中相同的元素)

[array removeAllObjects];//删除数组中的所有元素,即清空数组       



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值