黑马程序员——NSArray小结

常见的NSArray方法

方法描述
 + (instancetype)arrayWithObjects:(id)Obj... 创建一个新数组,obj,...是其中的元素
 - (BOOL)containsObject:(id)Obj 确定数组中是否包含对象Obj(使用isEqual:方法)
 - (NSUInteger)indexOfObject:(id)Obj 第一个包含对象Obj的元素索引号(使用isEqual:方法)
 - (NSUInteger)count 数组中元素的个数 
 - (NSUInteger)indexOfObjectPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate 传递每个对象obj,带有索引号idx到区块predicate中,如果obj通过测试返回YES,未通过返回NO,设置变量指针stop为YES结束处理
- (id)lastObject 返回数组最后的元素
 - (id)objectAtIndex:(NSUInteger)index 返回下标为index的元素
 - (void)makeObjectsPerformSelector:(SEL)aSelector  将aSelector指示的消息发送给数组中得每个元素
 - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block 通过块获取数组中得每个元素,包括对象obj和对应的index,只有当所有元素都遍历完或设置变量指针stop为YES才结束处理
 - (NSArray *)sortedArrayUsingSelector:(SEL)comparator 根据指定comparator方法的比较器对数组进行排序
 - (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr 通过执行区块cmptr对数组进行排序
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag  将数组写入指定的文件夹中,如果flag为YES,则先创建一个临时文件

常见的NSMutableArray方法(NSMutableArray类是NSArray的子类,因此上面的方法,对NSMutableArray也适用)

方法描述
+ (instancetype)array创建一个空数组
+ (instancetype)arrayWithCapacity:(NSUInteger)numItems使用指定的初始numItems创建一个数组
- (instancetype)initWithCapacity:(NSUInteger)numItems使用指定的初始numItems初始化新分配的数组
- (void)addObject:(id)object将对象object添加到数组的末尾
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index将对象object插入到数组的index位置
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject将数组中下标为index的元素用anObject对象替换
- (void)removeObject:(id)anObject从数组中删除所有的anObject
- (void)removeObjectAtIndex:(NSUInteger)index从数组中删除元素index
- (void)sortUsingSelector:(SEL)comparator用comparator指定的比较器将数组排序
- (void)sortUsingComparator:(NSComparator)cmptr通过执行区块block对数组进行排序

 

示例代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool {
      
        //类方法数组创建
        NSArray *array1 = [NSArray arrayWithObject:@"obj"];
        NSArray *array2 = [NSArray arrayWithObjects:@"obj1", @"obj2", @"obj3", nil];
        NSArray *array3 = [NSArray arrayWithArray:array2];
        NSLog(@"array1 :%@", array1);
        NSLog(@"array2 :%@", array2);
        NSLog(@"array3 :%@", array3);
        
        //实例方法创建数组
        NSArray *array4 = [[NSArray alloc] initWithObjects:@"AAA", @"bbb", nil];
        NSLog(@"array4 :%@", array4);
        
        //数组个数
        NSLog(@"array3 count :%d", [array3 count]);
        
        //访问元素
        NSLog(@"obj at index :%@", [array2 objectAtIndex:2]);
        
        //追加(返回新的array对象)
        NSArray *array5 = [array3 arrayByAddingObject:@"ccc"];
        NSLog(@"array5 :%@", array5);
        
        //根据指定的字符串连接数组元素
        NSString *joinString1 = [array5 componentsJoinedByString:@"|"];
        NSLog(@"joinString :%@",joinString1);
        
        //是否包含指定对象
        NSLog(@"isContains :%d", [array5 containsObject:@"obj2"]);
        
        //查找某个对象所在索引
        NSLog(@"indexOfObject :%d",[array5 indexOfObject:@"obj3"]);
        
        //最后一个元素
        NSLog(@"lastObejct :%@", [array5 lastObject]);
        
        //遍历数组
        for (id element in array5) {
            NSLog(@"element :%@", element);
        }
        
        //可变数组(期望容量设置为3)
        NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:3];
        //直接添加
        [mutableArray addObject:@"aaa"];
        [mutableArray addObject:@"eee"];
        [mutableArray addObject:@"000"];
        NSLog(@"addObject :%@", mutableArray);
        
        //插入元素
        [mutableArray insertObject:@"ccc" atIndex:0];
        NSLog(@"insertObject :%@", mutableArray);
        
        //移除指定元素
        [mutableArray removeObject:@"ccc"];
        NSLog(@"removeObject :%@", mutableArray);
        
        //移除指定下标元素
        [mutableArray removeObjectAtIndex:0];
        NSLog(@"removeObjectAtIndex :%@", mutableArray);
        
        //移除最后一个元素
        [mutableArray removeLastObject];
        NSLog(@"removeLastObject :%@", mutableArray);
        
        //添加数组
        [mutableArray addObjectsFromArray:array5];
        NSLog(@"addObjectsFromArray :%@", mutableArray);
        
        //移除指定数组中的内容
        [mutableArray removeObjectsInArray:array2];
        NSLog(@"removeObjectsInArray :%@", mutableArray);
        
        //指定索引替换对象
        [mutableArray replaceObjectAtIndex:0 withObject:@"==="];
        NSLog(@"replaceObjectAtIndex :%@", mutableArray);
        
        //删除全部对象
        [mutableArray removeAllObjects];
        NSLog(@"removeAllObjects :%@", mutableArray);
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/zhangguiguang/p/4874483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值