NSArray, NSNumber, NSValue, NSSet, 数组排序

数组分为:不可变数组(NSArray)和可变数组(NSMutableArray)

数组是存储在UI中可显示内容的集合, 数组必须先初始化才能使用

/* NSArray */


1.创建不可变数组

        NSArray *arr = [NSArray array];

        NSArray *arr1 =[NSArray arrayWithObjects:@"iphone",@"sanung",@"miui", nil];


2.获取元素的个数

        NSLog(@"%ld", [arr1 count]);

3.根据下标获取对象, 根据对象获取下标

        NSLog(@"%@", [arr1 objectAtIndex:2]);
        
        NSLog(@"%ld", [arr1 indexOfObject:@"iphone"]);

4.遍历数组

        for (int i = 0; i < [arr1 count]; i++) {
            NSLog(@"%@",[arr1 objectAtIndex:i]);
        }


        for (NSString *str in arr1) {
            NSLog(@"%@", str);
        }


/* NSMutableArray */


1.创建可变数组对象

        NSMutableArray *marr1 = [NSMutableArray arrayWithObjects:@"windows",@"unix", nil];

2.添加元素

        [marr1 addObject:@"linux"];

3.插入元素

       [marr1 insertObject:@"Mac" atIndex:0]; //根据下标插入元素

4.删除元素

        [marr1 removeLastObject];
        [marr1 removeObject:@"Mac"];
        [marr1 removeAllObjects];

5.替换

        [marr1 replaceObjectAtIndex:0 withObject:@"ASD"];

6.交换两个指定的元素

        [marr1 exchangeObjectAtIndex:0 withObjectAtIndex:1];


/* NSNumber */


所有的基础类型变量是不能当对象存储到容器中(数组,字典等)因此,基础类别的变量想要储存的话需要转换成别的对象才能存储.

(1)存储

        int a = 10;
        NSNumber *num = [NSNumber numberWithInt:a];
        [arr1 addObject:num];
(2)取值

        NSNumber *num2 = [arr1 lastObject];
        int b = [num2 intValue];


/* NSValue   */


和NSNumber的功能一样, 区别是将结构体转换成对象


(1)存储

        NSRange range = NSMakeRange(0, 0);
        NSValue *value = [NSValue valueWithRange:range];

(2)取值

        NSRange range1 = [value rangeValue];



集合分为: 不可变集合(NSSet)和可变集合(NSMutableSet)

/*  NSSet   */

1. 创建 (常见的初始化方法)

      (1)  NSSet *set = [NSSet setWithObjects:@"123",@"123",@"456", nil];
      (2)  NSArray *arr = [NSArray arrayWithObjects:@"1",@"3",@"3", nil];
        
           NSSet *set1 = [NSSet setWithArray:arr];
        
      (3)  NSSet *set2 = [[NSSet alloc]initWithArray:@[@"1",@"1"]];

2.获取元素个数(集合中元素师唯一且不重复的)

        NSLog(@"%ld", [set count]);

3.获取set中的某个元素

        [set anyObject];

4.判断set中是否包含某一个对象

        [set containsObject:@"123"];

5.添加元素

        set = [set setByAddingObject:@"4"]; //添加对象
        
        set =  [set setByAddingObjectsFromSet:set1]; // 把其他set的元素添加集合里

/*  NSMutableSet */


1.创建

        NSMutableSet *mSet = [NSMutableSet setWithObjects:@"123",@"456",@"789", nil];

2.添加元素, 移除元素

        [mset addObject:@"000"];
        
        [mset removeObject:@"123"];

3.遍历集合

        NSMutableSet *mset1 = [[NSMutableSet alloc]initWithObjects:@"1",@"2",@"3", nil];
        
        for (NSString *str in [mset1 allObjects]) {
            NSLog(@"%@", str);
        }


/* 数组排序 */


数组进行由小到大的排序


        (1)不可变数组
        NSArray *array1 = [NSArray arrayWithObjects:@"2", @"1", @"3", @"5", nil];
        
        //将数组进行排序
       NSArray *sortArray1 = [array1 sortedArrayUsingSelector:@selector(compare:)];
        
        //输出数组
        for (NSString *str in sortArray1) {
            NSLog(@"%@", str);
        }
        
        (2)可变数组
        NSMutableArray *mArray = [NSMutableArray arrayWithArray:array1];
        
        //将数组进行排序
        [mArray sortUsingSelector:@selector(compare:)];
        
        //输出数组
        for (NSString *str in mArray) {
            NSLog(@"%@", str);
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值