OC 容器类

NSArray 常用方法

1.创建数组对象,使用初始化方法或便利构造器。

        NSArray *arr1 = [[NSArray alloc]initWithObjects:@"王晨",@"刘国伟",@"郑海坤",nil];
        NSArray *arr2 = [NSArray arrayWithObjects:@"李智",@"魏大卫",@"刘天伟", nil];
        NSArray *arr3 = [NSArray arrayWithArray:arr1];
        NSLog(@"%@\n%@\n%@\n", arr1, arr2, arr3);

运行结果:

2014-09-19 19:29:06.750 oc07_容器类[5676:303] (

    "\U738b\U6668",

    "\U5218\U56fd\U4f1f",

    "\U90d1\U6d77\U5764"

)

(

    "\U674e\U667a",

    "\U9b4f\U5927\U536b",

    "\U5218\U5929\U4f1f"

)

(

    "\U738b\U6668",

    "\U5218\U56fd\U4f1f",

    "\U90d1\U6d77\U5764"

)


2.获取元素个数。

<span style="white-space:pre">	</span>for (int i = 0; i < [arr1 count]; i++) {

3.根据索引值获取对象。

        NSLog(@"%@",[arr1 objectAtIndex:i]);
        NSLog(@"%@", arr1[i]);
        }
运行结果:

2014-09-19 19:29:06.752 oc07_容器类[5676:303]王晨

2014-09-19 19:29:06.752 oc07_容器类[5676:303]王晨

2014-09-19 19:29:06.752 oc07_容器类[5676:303]刘国伟

2014-09-19 19:29:06.753 oc07_容器类[5676:303]刘国伟

2014-09-19 19:29:06.753 oc07_容器类[5676:303]郑海坤

2014-09-19 19:29:06.754 oc07_容器类[5676:303]郑海坤

4.获取某对象在数组中的索引值。

<span style="white-space:pre">	</span>NSLog(@"%lu",[arr1 indexOfObject:@"王晨"]);
运行结果:

2014-09-19 19:29:06.754 oc07_容器类[5676:303] 0



NSMutableArray 常用方法

 1.创建数组对象。

<span style="white-space:pre">	</span>NSMutableArray * mutArry1 = [NSMutableArray arrayWithArray:arr1];
2.添加元素、插入元素。
        [mutArry1 addObject:@"陈佳鸿"];//添加
        [mutArry1 addObjectsFromArray:arr2];
       
        NSString *temp = @"woca";
        [mutArry1 insertObject:temp atIndex:4];//插入
        for (int i = 0; i < [mutArry1 count]; i++) {
            NSLog(@"%@",mutArry1[i]);
        }
运行结果:

2014-09-19 20:23:31.004 oc07_容器类[6755:303]王晨

2014-09-19 20:23:31.004 oc07_容器类[6755:303]刘国伟

2014-09-19 20:23:31.005 oc07_容器类[6755:303]郑海坤

2014-09-19 20:23:31.005 oc07_容器类[6755:303]陈佳鸿

2014-09-19 20:23:31.005 oc07_容器类[6755:303] woca

2014-09-19 20:23:31.006 oc07_容器类[6755:303]李智

2014-09-19 20:23:31.006 oc07_容器类[6755:303]魏大卫

2014-09-19 20:23:31.007 oc07_容器类[6755:303]刘天伟

数组的嵌套遍历:

       NSMutableArray *class19 = [NSMutableArray arrayWithObjects:arr1, arr2, arr3 ,nil];
        
        //方法1
        for (int i = 0; i < [class19 count]; i++) {
            for (int j = 9; j < [class19[i] count]; j++) {
                NSLog(@"%@",class19[i][j]);
            }
        }
        //方法2
        for (int i = 0; i < [class19 count]; i++) {
            for (int j = 0; j < [[class19 objectAtIndex:i] count]; j++) {
                NSLog(@"%@",[[class19 objectAtIndex:i]objectAtIndex:j]);
            }
        }
        //方法3
        for (int i = 0; i < [class19 count]; i++) {
            NSArray *arr = [class19 objectAtIndex:i];
            for (int j = 0; j < [arr count]; j++) {
                NSLog(@"%@",arr[j]);
            }
        }

3.删除元素、替换元素。

        [mutArry1 removeLastObject];
        [mutArry1 removeObject:@"刘天伟"];
        //        替换
        [mutArry1 replaceObjectAtIndex:5 withObject:@"王子洁"];
        for (int i = 0; i < [mutArry1 count]; i++) {
            NSLog(@"%@",mutArry1[i]);
        }


运行结果:

2014-09-19 20:28:01.038 oc07_容器类[6782:303]王晨

2014-09-19 20:28:01.038 oc07_容器类[6782:303]刘国伟

2014-09-19 20:28:01.039 oc07_容器类[6782:303]郑海坤

2014-09-19 20:28:01.039 oc07_容器类[6782:303]陈佳鸿

2014-09-19 20:28:01.039 oc07_容器类[6782:303] woca

2014-09-19 20:28:01.040 oc07_容器类[6782:303]王子洁

2014-09-19 20:28:01.040 oc07_容器类[6782:303]魏大卫

4.交换指定位置的两个元素。

<span style="white-space:pre">	</span>[mutArry1 exchangeObjectAtIndex:4 withObjectAtIndex:5];
        for (int i = 0; i < [mutArry1 count]; i++) {
            NSLog(@"%@",mutArry1[i]);
        }

关于排序:

<span style="white-space:pre">	</span>NSMutableArray *aryNum = [NSMutableArray arrayWithObjects:@"3", @"7", @"9", @"1", @"5", nil];

冒泡方法:

        int flag = 1;
        for (int i = 0; i < [aryNum count ] - 1 && 1 == flag; i++) {
            flag = 0;
            for (int j = 0; j < [aryNum count] - i - 1; j++) {
                if ([aryNum[j] compare: aryNum[j + 1]] == 1) {
                    [aryNum exchangeObjectAtIndex:j withObjectAtIndex:j + 1];
                    flag = 1;
                }
            }
        }
        for (int i = 0; i < [aryNum count]; i++) {
            NSLog(@"%@",aryNum[i]);
        }

 1.可变数组的排序方法
        [aryNum sortUsingSelector:@selector(compare:)];
2.不可变数组的排序方法
        aryNum = (NSArray *)[aryNum sortedArrayUsingSelector:@selector(compare:)];



NSNumber 常用方法

//1.创建各个类型得数值对象
        //(1)整型
        NSNumber *n1 = [NSNumber numberWithInt:43];
        //(2)浮点(单精度)
        NSNumber *n2 = [NSNumber numberWithFloat:3.14];
        //(3)浮点(双精度)
        NSNumber *n3 = [NSNumber numberWithDouble:65.1131313123123123123];
        //(4)长整型
        NSNumber *n4 = [NSNumber numberWithLong:987654321];
        //(5)字符型
        NSNumber *n5 = [NSNumber numberWithChar:'A'];</span>


NSMutableArray 常用方法

        NSMutableArray *arrNum = [NSMutableArray arrayWithObjects:n1, n2, n3, n4, n5, nil];
        NSLog(@"%@",arrNum);
运行结果:

2014-09-19 20:28:01.044 oc07_容器类[6782:303] (

    43,

    "3.14",

    "65.11313131231232",

    987654321,

    65

)

对arrNum排序:

        [arrNum sortUsingSelector:@selector(compare:)];
        NSLog(@"%@",arrNum);
运行结果:

2014-09-19 20:28:01.045 oc07_容器类[6782:303] (

    "3.14",

    43,

    65,

    "65.11313131231232",

    987654321

)


遍历arrNum

        for (int i = 0; i < [arrNum count]; i++) {
            double d = [arrNum[i] doubleValue];
            NSLog(@"%.9f",d);
        }


运行结果:

2014-09-19 20:28:01.045 oc07_容器类[6782:303] 3.140000105

2014-09-19 20:28:01.045 oc07_容器类[6782:303] 43.000000000

2014-09-19 20:28:01.046 oc07_容器类[6782:303] 65.000000000

2014-09-19 20:28:01.046 oc07_容器类[6782:303] 65.113131312

2014-09-19 20:28:01.047 oc07_容器类[6782:303] 987654321.000000000







  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值