数组、字典、集合

参考1   参考2  参考3  参考4  参考5

NSArray * nn  = @[@"元素1",@"元素2",@"元素3"];

        NSUInteger i = [nn indexOfObject:@"元素1" inRange:NSMakeRange(0, 3)];

        NSLog(@"在给定范围内查找给定字符串所在的下标,如果有的话就返回第一个查找到的元素下标%lu --",i);

//NSMakeRange 里面的范围不能超了

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        //OC 里面的数组放的是对象必须是对象(可以存放不同类型的对象) 与 C语言里面的数组不同的是 OC里面的数组可以放不同类型的数据
        //数组 不可变数组 NSArry 数组是一个大容器 可以存放不同种 不同类的对象 不仅可以存放字符串 数组
        //创建数组 普通方法
        NSString * arr = [[NSArray alloc]initWithObjects:@"yingjie",@"liuxian", nil];//最后以 nil 结尾,nil 是数组元素结束的标志   初始化方法是:initWithObjects
        //便利构造器写法
        NSArray * arr1 = [NSArray arrayWithObjects:@"xiaobing", nil];
        //创建一个空的数组
        NSArray * arr2 = [NSArray array];
        //把数组 arr1 存放到 arr3 里面
        NSArray * arr3 = [NSArray arrayWithArray:arr1];
        NSLog(@"%@",arr3);//在控制台数组的输出都带一个小括号
        //创建一个简单的写法
        NSArray * arry = @[@"元素1",@"元素2",@"元素3"];
        //获取数组元素个数 count
        NSUInteger c = [arry count];
        NSLog(@"%lu",c);
        //获取数组中某个下标的数组元素
        NSString * str = [arry objectAtIndex:1];
        NSLog(@"%@",str);
        //获取数组的首个元素  firstObject  也可以是 objectAtIndex:0
        NSString * fist = [arry firstObject];
        //获取数组的最后一个元素  lastObject
        NSString * last = [arry lastObject];
        NSLog(@"%@ %@",fist,last);
        //是否包含某个对象元素
        BOOL isTrue = [arry containsObject:@"1"];
        NSLog(@"%ld e",isTrue);
        //获取数组元素的下标
        NSUInteger index = [arry indexOfObject:@"元素1"];
        NSLog(@"%ld f",index);
        /*//在给定范围内查找给定字符串所在的下标,如果有的话就返回第一个查找到的元素
        NSArray * nn  = @[@"元素1",@"元素2",@"元素3"];//该例子没有跟上********且有错误
        NSUInteger i = [nn indexOfObject:@"2" inRange:NSMakeRange(0, 4)];
        NSLog(@"%lu --",i);*/
        
        //数组的比较 比较给定的数组与原来的数组是否相等 isEqualToArray 如果对应的元素不等,改了顺序才等,那也是不相等
        BOOL isEqual = [arr1 isEqualTo:arr2];
        NSLog(@"%d d",isEqual);
        //遍历数组元素
        for (int i = 0; i < [arry count]; i++) {
            NSLog(@"%@ 000",[arry objectAtIndex:i]);
        }
        //快速遍历、枚举出(数组集合)的方法   在集合 或者数组里查找元素
        for (NSString *object in arry) {
//            NSLog(@"%@ 111",object);
            NSLog(@"%@ 111",object);
        }
       //for in 在集合里面遍历元素,每遇到一个对象元素都会把元素取出,执行 forin 里面的语句,直到集合里没有对象为止
        for (id object in arry) {
            //            NSLog(@"%@ 111",object);
            NSLog(@"%@ 111",object);
        }
        
        
        //可变的数组   NSMutableArray  是 NSArray 的子类
        //比 NSArray  多的功能是 ???
//        创建一个可见数组 NSMutableArray
        NSMutableArray * muArry = [NSMutableArray arrayWithCapacity:1];//便利构造器
        NSMutableArray * muArry1 = [NSMutableArray arrayWithCapacity:2];//普通的方法
        //添加数组元素
        [muArry addObject:@"22"];//把不可变数组元素添加到可变的数组中
        NSLog(@"%@",muArry);
        NSMutableArray * muArry2 = [NSMutableArray arrayWithArray:arry];//便利构造器吧一个数组元素添加到可变数组中
        //插入一个数组元素
        [muArry insertObject:@"hello" atIndex:1];
        NSLog(@"%@",muArry);
//        [muArry insertObjects:arr atIndexes:set];  //这里是一个集合
        //删除一个数组元素
        [muArry removeLastObject]; //删除数组中最后一个元素
        NSLog(@"%@",muArry);
        [muArry removeObjectAtIndex:0];
         NSLog(@"删除数组中指定下标的元素%@",muArry);
        //删除指定范围的元素
        [muArry insertObject:@"hello0" atIndex:0];
        [muArry insertObject:@"hello1" atIndex:1];
        [muArry insertObject:@"hello2" atIndex:2];
        [muArry insertObject:@"hello3" atIndex:3];
        [muArry insertObject:@"hello4" atIndex:4];
        [muArry removeObject:@"hello4" inRange:NSMakeRange(0, 5)];//这里创造的范围不能超出了
        NSLog(@"%@",muArry);
        //全部删除数组的元素
        [muArry removeAllObjects];
        NSLog(@"全部删除数组的元素后:%@",muArry);
        [muArry addObjectsFromArray:@[@"z00",@"a11",@"w22",@"f33",@"y44",@"t55",@"r66",@"l77"]];//这里是一个简便的nsarry写法  里面要是写上 汉字的话 打印的是 一行其他的编码
        [muArry replaceObjectAtIndex:0 withObject:@"11"];//替换第一个元素为11
        NSLog(@"%@",muArry);
        //交换指定下标的元素对象
        [muArry exchangeObjectAtIndex:0 withObjectAtIndex:2];//交换第一个 第二 个元素的对象
        NSLog(@"交换指定下标的元素对象%@",muArry);
        //对于常用的方法最好是能记住
        //对数组排序 Sorts the array’s elements in ascending order, as determined by the comparison method specified by a given selector.
        // sortUsingSelector: 对数组的排序
        [muArry addObject:@"12"];
        [muArry addObject:@"01"];//这里的数字是字符串对象
        NSArray * ny = [muArry sortedArrayUsingSelector:@selector(compare:)];//这里是对立面的元素进行排序,然后把排好序的数组返回,这里没有操作本身
        NSLog(@"%@",ny);
        //
        [muArry sortUsingSelector:@selector(compare:)];//这里是直接排序,这里是操作了本身
        NSLog(@"%@",muArry);

    }
    return 0;
}
 数组使用

相关文章: